Я знаю, что это не лучшая формулировка моего вопроса. На моем сервере некоторые проблемы В ОСНОВНОМ сводятся к следующему: как выйти из цикла while после выполнения условия A? И можно ли уничтожить определенные потоки, если выполняется условие B?
К сожалению, основной поток блокируется функцией recvfrom() навсегда, если я не могу выйти из цикла.
while (1)
{
recBytes = recvfrom(sock, packetBuff, 8, 0, (struct sockaddr *) &client, &SockLength);
std::thread TX([&]
{
//process packet task
if(conditionA == 1)
break from while loop
if(conditionB == 1)
destroy any active threads spawned by TX
.
.
.
much more tasks
});
TX.detach();
}
.
.
.
continue rest of code
Заранее спасибо!