Как я могу ждать несколько вещей
Я пишу потокобезопасную очередь, используя C ++ 11 и stl. Метод WaitAndPop в настоящее время выглядит следующим образом. Я хотел бы иметь возможность передать что-то в WaitAndPop, которое указывает, было ли запросить поток вызова остановить. WaitAndPop должен возвращать true, если он ждал и возвращал элемент очереди, он должен возвращать false, если вызывающий поток останавливается.
bool WaitAndPop(T& value, std::condition_variable callingThreadStopRequested)
{
std::unique_lock lock(mutex);
while( queuedTasks.empty() )
{
queuedTasksCondition.wait(lock);
}
value = queue.front();
queue.pop_front();
return true;
}
Можно ли кодировать что-то вроде этого? Я'Я привык к Win32 WaitForMultipleObjects, но можетне могу найти альтернативу, которая работает для этого случая.
Thanks.I»
Я видел этот связанный вопрос, но это не такна самом деле не решить проблему.темы обучения на Linux