![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: 1 Всего: 2 |
Хочу создать очередб с ожиданиями и с отказами, но что-то слетает
есть циклический буфер
на его основе хочу создать очередь (поставщики-клиенты)
так вот получается, что, например, если я вхожу в критическую секцию reset() и сбрасываю семафор, то поток, который проверяет pop() пройдет условие и будет ждать входа в критическую секцию как только я выйду из reset, поток в pop войдет, но очередь пуста !!! Также и в push Тоесть мне нужно как-то умудрится подождать очередь в pop и push, войти в критическую секцию и сделать свое дело Это сообщение отредактировал(а) zss - 23.3.2006, 11:07 |
||||
|
|||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Критично ли использование семафора ? ИМХО это системный и довольно медленный ресурс, скорее нужен для межпроцессного общения - раз. Тщательнее было бы использовать функции
Interlocked... и статическую переменную класса. А у тебя получается смена очередности Semaphore - CriticalSexion, сначала закрой CS, а затем начинай мудрить с семафорами. Это сообщение отредактировал(а) threef - 23.3.2006, 16:00 |
|||
|
||||
| sdeniss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 3.3.2006 Репутация: нет Всего: 1 |
||||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
sdeniss
Это таким образом идет очистка очереди. Wait -функции очищают семафор до 0. Потом при помощи Unlock добавляются элементы в очередь. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |