Синхронизация доступа
От: Ktirf  
Дата: 09.09.01 22:37
Оценка:
Возможно, я не совсем правильно выбрал форум, но думаю, сия задача будет интересна даже тем, кто пишет на Бейсике под Unix ;)

Задача следующая. Имеется некоторый объект, доступ к которому возможен одним из двух способов: либо R/O, либо R/W. Требуется синхронизировать доступ по вполне очевидному сценарию: если кто-то пытается обратиться к объекту по R/W, объект должен быть свободен; если кто-то пытается обратиться к объекту по R/O, в объект не должны в этот момент записывать. Классическая схема разлочки, используемая везде. Внимание, вопрос: как реализовать эту схему? Нужно сделать так, чтобы пишущие/читающие агенты могли ждать, когда объект освободится (WaitForSingleObject или аналогично). Лично я споткнулся на том, что писателю нужно ждать, пока все читатели не отпустят объект. Получается что-то вроде семафора наоборот: объект синхронизации должен быть в сигнальном состоянии, когда его счетчик равен нулю. Как его написать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.