У меня есть цикл, который в основном вызывает это каждые несколько секунд (после тайм-аута):
while(true){
if(finished)
return;
switch(select(FD_SETSIZE, &readfds, 0, 0, &tv)){
case SOCKET_ERROR : report bad stuff etc; return;
default : break;
}
// do stuff with the incoming connection
}
Таким образом, в основном каждые несколько секунд (что указано в тв), он возобновляет прослушивание.
Это выполняется в потоке B (не в основном потоке). Бывают моменты, когда я хочу немедленно завершить этот цикл принятия из потока A (основного потока), но мне кажется, что мне нужно ждать, пока временной интервал не закончится ..
Есть ли способ прервать функцию выбора из другого потока, чтобы поток B мог выйти немедленно?