Здравствуйте, cybrex, Вы писали:
C>Возникла такая проблема. C>Необходимо реализовать алгоритм читатели/писатели под Windows с использованием mutex-ов(или event-ов), и ещё одно обязательное условие: C>в программе не должен быть использован Sleep()!!! (или аналогичные команды типа SwitchToThread() ). Собственно проблема возникает тогда когда поток писатель сделав своё дело должен передать управление другому писателю или читателю, которые ожидают в этот момент. Но происходит повторный вызов того же самаго потока писателя. (причём такая ошибка возникает примерно 1 раз на 30 операций чтения или записи — всмыле не постоянно, а периодически)
Этот алгоритм гораздо удобнее реализовать с помощью пары семафоров.
Вы подумайте, как сделать семафор из event'а и interlocked счетчика — это не очень сложно. Если немного поднапрячься, даже мутекс не понадобится. И реализуйте алгоритм, используя самодельные семафоры. Думаю, преподаватель оценит.