информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] вопрос про Semaphore 08.05.02 14:59  
Автор: 1blin Статус: Незарегистрированный пользователь
<"чистая" ссылка>
может быть и глупый вопрос...
Вот есть у меня, скажем, очередь с семафором. Семафор - чтобы элементы очереди "считать".
Есть функция AddElement, в ней ReleaseSemaphore() - на единичку увеличивает.
Есть функция GetElement, в ней Wait... - когда дождется - на единичку уменьшает.
Да вот понадобилась мне функция Delete_ALL_Elements. А что с семафором делать - ума не приложу! Как его сразу в ноль сбросить? (Вроде бы естественное желание, а?; а ничего подобного не нашел :()
Ну не закрывать же его и снова создавать, в самом деле?
[C++] вопрос про Semaphore 08.05.02 16:15  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> может быть и глупый вопрос...
> Вот есть у меня, скажем, очередь с семафором. Семафор -
> чтобы элементы очереди "считать".
> Есть функция AddElement, в ней ReleaseSemaphore() - на
> единичку увеличивает.
> Есть функция GetElement, в ней Wait... - когда дождется -
> на единичку уменьшает.
> Да вот понадобилась мне функция Delete_ALL_Elements. А что
> с семафором делать - ума не приложу! Как его сразу в ноль
> сбросить? (Вроде бы естественное желание, а?; а ничего
> подобного не нашел :()
> Ну не закрывать же его и снова создавать, в самом деле?

The initial count of a semaphore is typically set to the maximum value.
помоему, чтобы сбросить семафор(выставить count на максимальную величину, а не на ноль ) надо вызвать
ReleaseSemaphore(hSem, maximum value-current value, null)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach