stl thread аналог waitforsingleobject

подскажите пожалуйста как реализовать средствами stl следующую вещь:

  1. работают 10 потоков
  2. после того, как заканчивают выполнять поставленные для каждого потока задачи первые 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();
        }
    }
}

Ответы (0 шт):