на главнуюВсе эхи RU.CPP
войти ?

Re: pthreads rd/wr lock'и

От 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)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.CPP?msgid=2:5020/830.100+0fa8743d