Сейчас есть мютекс на доступ к списку, и мютекс на каждый объект списка... Но что-то я никак не могу правильно расставить все блокировки.
Вот например
Пройти по всем объектам и уменьшить счетчик: Блокируем список Берем элемент Блокируем его уменьшаем счетчик разблокируем элдемент переходим к следующему Разблокируем список
Т.е. если вызывать эту процедуру из разных потоков, то они будут ждать разблокировки всего списка, хотя эта процедура не изменяет сам список и эта блокировка вроде как излишня...но в то же время Процедура очистки списка обязана блокировать весь список на время своей работы..т.е. пиходится блокировать спсиок всегда... Или есть еще какие метОды синхронизации???
|