![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cupper |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
Пытаюсь реализовать этот процесс.
Имею, n-e количество поток выполняет функцию F1, с телом
один поток в произвольное время делает вот так (F2)
sharedBuffer это некий общий буфер в который кемто другим заносится данные в виде пары - сообщение для отправки - указатель на экземпляр класса который должен его отправить обыкновенная ситуация когда в буфере есть данные который должен оправить некий П1, но тут вдруг этот П1 получает дисконнект, и уме больше ненадо отправлять данные. Тогда ему нужно из буфера удалить все записи с указателем на себя. Тут как раз этим П1 вызывается функция F2, он во первых хочет получить полные права на свой мютес, что бы больше никто не смог отправлять данные по средством F1. После того как он получает управление, от отчищает буфер от записей с собой. Удаляет соединение (reset). Далее освобождает мютекс для читателей, которые в свою очередь (те кто уже успех захватить запись из буфера, но не успел отправить ее до дисконнекта) видят что соединение уже нету и захваченную запись нужно просто пропустить. Меня собстно интересует момент правильно ли я реализовал блокировку мютекса. То что сразу несколько читателей могут получить доступ заняв мютекс частично
и то что когда писатель захочет полностью занять мютекс
он будет вынужден дождаться пока все текущие читатели его отпустят. Но при этом блокирует его захват новыми читателями ? |
||||||||
|
|||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |