Linux/i386 2.6.9 + glibc 2.3.4
Linux/x86_64 2.6.18 + glibc 2.6.1
есть некий объект, защищенный rwlock-ом и есть достаточно большое количество потоков (несколько сотен), которые к нему обращаются. в 99.999% процентов случаев обращение идет на чтение -> берется read lock, после чего объект держится заблокированным какое-то время (~несколько секунд). однако, иногда состояние объекта нужно изменить -> берется write lock. объект очень популярен, i.e. практически постоянно кто-то да держит его заблокированным на чтение.
проблема: практически невозможно взять write lock, i.e. эта операция занимает *очень* много времени (минуты-десятки минут).
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_rwlock_wrlock...
--- cut ---
Implementations may favor writers over readers to avoid writer starvation.
--- cut ---
вопрос: реализована ли в Linux приоритет писателей над читателями, или они равноправны? бо судя по его поведению, write lock ждет момента, когда лок будет полностью свободен не притормаживая при этом читателей -> дожидается его он очень и очень не скоро..
ps: rwlock создается с атрибутами по-умолчанию (NULL).
// wbr
Ответ на:
комментарий
от MKuznetsov
Ответ на:
комментарий
от MKuznetsov
Ответ на:
комментарий
от klalafuda
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум pthread_rwlock + shared + robust (2021)