stl thread аналог waitforsingleobject
подскажите пожалуйста как реализовать средствами stl следующую вещь:
- работают 10 потоков
- после того, как заканчивают выполнять поставленные для каждого потока задачи первые 9 закончивших ожидают когда закончит последний свою задачу
в WinAPI я бы использовал обычный WaitForSingleObject, но как аналогично сделать это с помощью stl thread?
т.е. имеется примерно такой код:
void thread_func(std::mutex& lock) {
while (true) {
// основные вычисления
my_calculate();
// отчитываемся о завершении работы
lock.lock();
m_actual --;
lock.unlock();
if (m_actual == 0) {
// определить новое вычисление
my_prepare();
// сказать всем процессам, которые раньше справились с задачей - работать снова
set_event();
}
else {
// ждем когда разрешат работать :)
waitforsingleobject();
}
}
}