Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Синхронизация и мьютексы |
Автор: nerezus 2.9.2009, 07:16 | ||
Задача: Нужно сделать многопроцессную крит. секцию. Предполагаю юзать так: lock = InterProcessLock('name') lock.lock() bebebe() lock.unlock() Имеются проблемы, причем неизвестно с чем связанные: в нескольких случаях mutex не определяется и не блокирует, а unlock над ним вызывает исключение. Правильно ли я его реализовал? Просьба не смотреть на язык, могу сделать и на C, код считать псевдокодом. Какие альтернативы есть? |
Автор: Lazin 2.9.2009, 08:02 | ||
если mutex.Close вызывает CloseHandle, то это ошибка, для того, что-бы освободить мьютекс, нужно вызвать ReleaseMutex вот мой именованный мьютекс, правда на с++
|
Автор: nerezus 3.9.2009, 04:02 |
Lazin, ага, спс. Я почти уверен, что внутри mutex реализован правильно. Меня больше интересует факт блокирования в виде крит. секции: Правильно ли использовать блокировку по таймеру? (метод lock вверху) |
Автор: Lazin 3.9.2009, 08:21 |
nerezus, честно говоря я вообще не понял, зачем нужно каждый раз в методе lockNoWait - пытаться создать мьютекс, а в методе unlock - удалить, а так-же, почему метод lock работает именно так. Если тебе нужен мьютекс, для синхронизации процессов, то ты:
|