std::condition_variable счетчик notify
От: Selavi  
Дата: 16.06.15 21:18
Оценка:
Не удалось нагуглить...

есть код:

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?

Спасибо)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.