Ожидание любого завершившегося потока
Форум — Development
Здравствуйте! В ходе реализации программы (Алгоритм программы состоит в том, чтобы количество созданных потоков не превышало заданного количества) возникла необходимость в функции, которая приостанавливала бы «родительский» поток, пока не завершится любой из созданный «дочерних». (что-то наподобие wait() в процессах). Смотрел в сторону pthread_join, но она ожидает завершения потока с определенным tid, что не подходит. Может кто-нибудь сталкивался с подобного рода ситуацией и может подсказать что-нибудь по этому поводу?
привожу кусок кода:
if (thread_str_data.pN == config.Nprocess)
{
printf("Ждем\n");
}
else
{
++thread_str_data.pN;
/* данных для потока*/
data.pathfile1 = top -> path;
data.pathfile2 = top1 -> path;
data.size = top -> size;
/*запускаем поток*/
pthread_create(&tid, NULL, &thread_func, &data);
}