От Dmitry E. Oboukhov (2:5020/830.100) к Serguei E. Leontiev
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
DEO>>>> pthread_rwlock_rdlock(&lock);
DEO>>>> ... код
DEO>>>> pthread_rwlock_unlock(&lock); // [2.1]
DEO>>>> pthread_rwlock_wrlock(&lock); // [2.2]
DEO>>>> ... код, модифицирующий ресурс
DEO>>>> pthread_rwlock_unlock(&lock);
DEO>>>> в принципе логических гонок нет, но мне не нравится то что какое-то
DEO>>>> время лок отсутствует вообще. то есть гонки появиться могут в
SEL> какой-то
DEO>>>> перспективе между [2.1] и [2.2]
SEL> Если нет гонок, т.е. если "volatile" информация, полученная в области "...
SEL> код", не используется в области "... код, модифицирующий ресурс". То и
SEL> проблемы нет, для порядка можно разнести на два блока (две функции), что бы
SEL> уж с гарантией. Типа, например, функция lookup() - только читатель, а
SEL> insert() - писатель.
SEL> Hу, а раз мы в группе RU.CPP, то могу посоветовать опробовать BOOST в части
SEL> библиотеки Thread, которая является тонкой (только заголовочные файлы)
SEL> прослойкой над pthread_*(), в ней имеется реализация shared_lock с
SEL> возможностью "усиления/ослабления". Если у тебя умеренные требования и все
SEL> эти "инверсии приоритета" от тебя далеки, то чем не решение.
SEL> Опять же авторитетная, для C++ конечно, группа разработчиков (Александреску
SEL> и сотоварищи), переносимое, все дела :)
... Если женщины на некоторое время умолкнут, то вы сможете услышать страшный рев Hиагарского водопада
--- Mutt/1.5.20 (2009-06-14)
* Origin: Debian GNU Linux (2:5020/830.100)
Ответы на это письмо: