Уменьшает ли функция WaitForSingleObject счетчик семафора, если она возвращает значение, отличное от WAIT_OBJECT_0?

82
25 ноября 2020, 10:20

Нужно ли вызвать ReleaseSemaphore в следующей ситуации?

HANDLE hSemaphore = OpenSemaphore(SYNCHRONIZE, FALSE, TEXT("Global\\Semaphore"));
DWORD dwWaitResult = WaitForSingleObject(hSemaphore, 0);
if (dwWaitResult != WAIT_OBJECT_0)
{
    ReleaseSemaphore(hSemaphore, 1, NULL);  // ???
}
Answer 1

В комментарии к вопросу есть ответ: нет, не уменьшает.

READ ALSO
Вопрос про abs и решение одной задачи на С++

Вопрос про abs и решение одной задачи на С++

Решалась задача: Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клеткуДаны две различные клетки шахматной доски,...

75
Владение ресурсом через указатель [дубликат]

Владение ресурсом через указатель [дубликат]

Чтобы не заморачиваться с написанием класса-обертки, думаю использовать лямбда + unique_ptr, иначе говоря, пишу

96
Как это работает?

Как это работает?

есть программа:

114