Не удалось нагуглить...
есть код:
std::condition_variable cv;
std::unique_lock<std::mutex> lock(mutex);
while (!terminated)
{
cv.wait(lock); //1
{
//2
}
}
Если вызвать откуда то cv.notify(), то отработает 2 и все ок. Но если вызвать еще раз cv.notify() во время 2, то вызов пропадет зря и в момент, когда выполнение вернется в 1, то поток остановится и будет ждать cv.notify
Можно, конечно, реализовывать вручную счетчики, но может есть какой нить изящный способ сделать так, чтобы 2 отрабатывало столько раз, сколько будет вызван notify?
Спасибо)