Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SetEvent() под Windows 7 работает только один раз
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток. Кто-нибудь сталкивался с неправильным поведением функции API SetEvent() под Windows 7 32-bit? Есть 2 процесса — главный и подчинённый, который создаётся по CreateProcess(). Есть именованное событие, используемое для синхронизации между процессами (в обоих процессах событие создаётся по CreateEvent() с manual reset = false). В подчинённом процессе устанавливается событие через SetEvent(). Главный процесс видит это событие и WaitForSingleObject() разблокируется. Но когда SetEvent() вызывается во второй раз (и возвращает true) — главный процесс уже это событие не видит и соответственно не разблокируется. Причём в нём это событие не закрывается и не сбрасывается. Шаманство с manual reset = true и ResetEvent() не помогло. ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2013, 10:43 |
|
||
|
SetEvent() под Windows 7 работает только один раз
|
|||
|---|---|---|---|
|
#18+
Frame Relay, почитайте http://msdn.microsoft.com/en-us/library/windows/desktop/ms686915(v=vs.85).aspx. Похоже что там тоже пишут о подобной проблеме и, возможно, Вы там найдете что-нибудь полезное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 00:03 |
|
||
|
SetEvent() под Windows 7 работает только один раз
|
|||
|---|---|---|---|
|
#18+
d7i По ссылке я уже читал — но там решения проблемы нет. Но хотя бы понятно, что такое проявляется не только у меня. Подобное "пропадание" событий происходит не всегда — в одном и том же приложении разные события ведут себя по-разному — одни стабильно многократно сигналят, другие стабильно сигналят только один раз. Причём зависимость от условий создания самих объектов событий, их установки и сброса пока установить не удалось. Попробую ещё пересоздать приложение под 64-битную "восьмёрку" на MSVS2012 (проблема наблюдалась на 32-битной "семёрке" и MSVS2010). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 11:57 |
|
||
|
SetEvent() под Windows 7 работает только один раз
|
|||
|---|---|---|---|
|
#18+
не оно? http://www.rsdn.ru/forum/winapi/2892340.all http://cboard.cprogramming.com/windows-programming/100818-setevent-resetevent.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 18:02 |
|
||
|
SetEvent() под Windows 7 работает только один раз
|
|||
|---|---|---|---|
|
#18+
drsm Там не про то. Проблема в пропадании события после первого удачного срабатывания (т.е. один раз всё проходит нормально). Один процесс сигналит, другой разблокируется при этом. Снова один процесс сигналит (тот же хэндл) — другой бесконечно ждёт, не видя вновь сигналящего события. если задать блокировку с таймайтом — выход из блокировки по таймайту (не по ошибке или абандону). Т.е. во втором процессе хэндл продолжает быть действительным. При этом другое событие (сигнал и блокировка в этих двух процессах взаимно переставлены) — без проблем. Единственное отличие первого события от второго — первое в начальном состоянии устанавливается как сигналящее. Шаманство с автосбросом/ручным сбросом не помогло. На Windows 8 пока не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 11:32 |
|
||
|
SetEvent() под Windows 7 работает только один раз
|
|||
|---|---|---|---|
|
#18+
Frame Relay, Может таки код уже покажешь? Я не думаю, что в какой-то из версий Win есть проблемы с таким базовым механизмом ядра, как Event, поскольку если бы это не работало, то оно быстро бы обнаружилось и исправилось. А отсюда вывод -- ты не умеешь их готовить. Напиши синтетический отдельно стоящий тест, пришли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 14:58 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38293594&tid=2020139]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 270ms |

| 0 / 0 |
