Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Запретить рекурсивный режим мьютекса


Автор: null56 1.3.2010, 16:32
Всем привет
Хотел поинтересоваться по поводу работы с объектами мьютексов в винде
Что делаю
Работаю в одном потоке
1) Создаю неименованный объект мьютекса
Код

CreateMutex(NULL, false, NULL)

2) Захватываю мьютекс
Код

WaitForSingleObject(m_Mutex, INFINITE)

3) Потом еще раз захватываю в том же потоке
Код

WaitForSingleObject(m_Mutex, INFINITE)

Вопрос: можно ли как - нибудь запретить рекурсивный режим работы мьютекса?
Заранее благодарен за помощь

ЗЫ: в msdn не могу ничего про этой найти или плохо ищу. вполне может быть, что через дескриптор безопасности можно, но по моему это громоздкий способ заполнять аттрибуты мьютекса

Автор: GremlinProg 1.3.2010, 16:42
Цитата(null56 @  1.3.2010,  18:32 Найти цитируемый пост)
можно ли как - нибудь запретить рекурсивный режим работы мьютекса?

можно, если вместо мьютекса использовать семафор весом в единицу

Автор: null56 1.3.2010, 16:43
GremlinProg, так я и подумал ) спасибо

Автор: GremlinProg 1.3.2010, 20:04
или простое событие (неавтомат)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)