> > Отследить такое не сложно. Но вопрос - а что делать? Формально это > > Видал в логе IB сообщения от блокировщика о то что "жопа" ;-), вот и ты также > пиши в лог.....
Гыгы. Я вместо "логическая ошибка" именно это и хотел написать. Я тут одын вещь понял - блокировать можно не только страницы целиком, но и конкретный блок (который может размещаться на нескольких страницах). На выходных курил тему блокировщика. И, о чудо, в пустую голову пришли такие мысли - блокировщик это самостоятельная сущность. То есть, грубо говоря, не нужно на уровень каждого элемента кэша страниц пихать объект синхронизации. Объекты блокировки являются общими и привязываются к синхронизируемому объекту по требованию. То бишь есть еще и кэш блокировок (который находится в ведении блокировщика). Гы. Если удасться по человече оформить код этого блокировщика, то это чудо можно юзать для чего угодно. Что меня дико радует. За основу реализации блокировки думаю взять SWMRG из 4-го издания Рихтера. Я его, правда, переработал для поддержки timeout-ов и Cancel- уведомлений. Он правда жрет два системных объекта синхронизации (у рихтера - семафоры, у меня - события). Один для очереди читателей и один для очереди писателей. Можно конечно, обойтись одним - и спускать с цепи обе очереди. Писатели все равно имеют приоритет перед читателями. Код, для критики, я опубликую на RSDN в самое ближайшее время. Вообщем, хочется надеятся, что с самой страшной вещью многопоточного кэша я правильно определился. Коваленко Дмитрий.

