Форум программистов, компьютерный форум, киберфорум
Наши страницы
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
FarStar
Заблокирован
1

read_write_mutex

03.04.2013, 10:25. Просмотров 836. Ответов 4
Метки нет (Все метки)

Ребят, что - то я не пойму, в бусте 1.53 появился read_write_mutex ? Вроде да, но в каком исходнике? Что - то нигде не могу найти. Мне собственно надо блокировать потоки с таким правилом, чтоб у варйтера было преимущество перед ридерами и чтоб одновременно читать могло сколько угодно ридеров. Есть у кого - нибуть пример или комментарий по данному вопросу?
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
03.04.2013, 10:53 2
FarStar, насколько я знаю, подобную реализацию можно уже давно использовать.
http://stackoverflow.com/questions/9...eads-one-write
0
FarStar
Заблокирован
03.04.2013, 11:45  [ТС] 3
Ну а где же там сам крутой мьютекс то ? boost::read_write_mutex

Добавлено через 5 минут
Собственно вот вырезка из одной скорее всего не очень свежей:

В библиотеке Boost.Threads планируются несколь-ко дополнительных возможностей. Будет boost::read_write_mutex, позволяющий нескольким потокам в одно и то же время читать разделяемый ре-сурс, но гарантирующий исключительный доступ лю-бому потоку, записывающему этот ресурс

Добавлено через 8 минут
И ещё вопрос, вот boost::shared_lock, boost::upgrade_lock и boost::upgrade_to_unique_lock - это как бы Scope локи? Тоесть выйдя из видимости они разблокируются автоматом?

Добавлено через 30 минут
Ну собственно вопрос ещё такой, вот читатели блокируются этим boost::shared_lock, а писатель должен блокироваться сначала boost::upgrade_lock потом его апгрейдить до юникью? Но ведь он же не про апгрейдит, т.к. boost::upgrade_lock - тоже самое, что и шаред лок, тоесть он блокировку на читателей не ставит. Как быть? Сразу писателю лепить unique_lock? Вот кстате тут то и нубский вопрос, unique_lock - типа лок для записи, а что с этим локом для записи я читать не смогу что ли ? накой тогда ваще boost::upgrade_lock
0
Avazart
Эксперт С++
7756 / 5662 / 554
Регистрация: 10.12.2010
Сообщений: 25,663
Записей в блоге: 17
03.04.2013, 16:28 4
В доке посмотри ...

Добавлено через 58 секунд
Цитата Сообщение от FarStar Посмотреть сообщение
И ещё вопрос, вот boost::shared_lock, boost::upgrade_lock и boost::upgrade_to_unique_lock - это как бы Scope локи? Тоесть выйдя из видимости они разблокируются автоматом?
Почитай форум обсуждалось кое-что в этом разделе

Добавлено через 10 минут
Из старой доки 1.4x
• The broken boost::read_write_mutex has been replaced with boost::shared_mutex.
0
fasked
Эксперт С++
4984 / 2563 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
06.04.2013, 13:01 5
Цитата Сообщение от FarStar Посмотреть сообщение
Ну собственно вопрос ещё такой, вот читатели блокируются этим boost::shared_lock, а писатель должен блокироваться сначала boost::upgrade_lock потом его апгрейдить до юникью? Но ведь он же не про апгрейдит, т.к. boost::upgrade_lock - тоже самое, что и шаред лок, тоесть он блокировку на читателей не ставит. Как быть? Сразу писателю лепить unique_lock? Вот кстате тут то и нубский вопрос, unique_lock - типа лок для записи, а что с этим локом для записи я читать не смогу что ли ? накой тогда ваще boost::upgrade_lock
shared_lock и upgrade_lock
0
06.04.2013, 13:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru