ОС: Windows.
Язык: C
У меня есть поток, который отправляет запрос по TCP на сервер и бесконечно ждет ответа на семафор. Есть еще один поток, который читает сокет, копирует полученные данные в общий буфер и заставляет семафор выйти из режима ожидания. Все это прекрасно работает. Но в случае, если процесс по какой-то причине остановлен, поток, ожидающий семафора, будет ждать вечно, пока другие потоки не завершаются.
Почему поток, ожидающий семафор, не заканчивается, когда процесс завершается? Я читал на форумах Linux, что есть SEM_UNDO, который помогает в таких ситуациях. Есть ли что-то похожее на Windows? любой обходной путь?