Простите, тот псевдокод, что приведен по странице википедии, обладает той же проблемой - тред, делающий операцию P может крутиться в цикле даже если и значение S подскочит выше, чем I. Поскольку другой тред, да даже и тот, кто сигналил, может это значение тут же обнулить, а первый тред ничего не заметит.
Т.е. управление счетчиком тут, конечно, атомарное, но атомарности wake up and gain the semaphore не наблюдается.
no subject
Date: 2011-11-01 08:28 pm (UTC)Т.е. управление счетчиком тут, конечно, атомарное, но атомарности wake up and gain the semaphore не наблюдается.