суть в следующем: есть прога которая создает 3 птока 1-принимает запросы 2-обрабатывает запросы 3-пишет данные в файл. второй поток в зависимости от нагрузки может плодится (точнее первый поток плодит вторые). потоки передают друг другу данные через буферы. на каждый буфер есть флаг 1-буфер занят каким-либо потоком 0-буфер свободен. в принципе одновременный доступ двух и более потоков к одному буферу исключен. НО при большой назрузке растет вероятность того, что два потока могут одновременно обратиться к флагу, после чего прога благополучно может рухнуть. Так вот вопрос: 1:есть ли какая либо функция которая может закрыть всем потокам кроме вызываюшего доступ к определенным данным ? (ну скажем передаю адрес и размер массива и он блокиреутся для других) 2: в описании на pthread_mutex_lock написано, что он блокирует исключающий семафор. что это за хрень я так и не врубился. попробывал опытным путем и эта функция заблокировала мне вызывающий ее поток, а такая фигня меня не устраивает. можно ли этой функцией заблокировать все потоки кроме вызывающего и как ?? 3: если у кого нибудь была подобная проблема, расскажите как ее решили?(если не секрет)


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Исходники pthread_mutex_lock() и о блокировках вообще? (2005)
- Форум двойной pthread_mutex_lock (2011)
- Форум как скрестить poll и pthread_mutex_lock (2013)
- Форум volatile - нужен ли при pthread_mutex_lock()? (2009)
- Форум Блокировки (2015)
- Форум Блокировка? (2015)
- Форум блокировки (2001)
- Форум Блокировка (2004)
- Форум Блокировка (2005)
- Форум взаимные блокировки (2016)