У меня есть поток, который спит долгое время, затем просыпается, чтобы что-то сделать, а затем снова засыпает, вот так:
while(some_condition)
{
// do something
sleep(1000);
}
Как я могу заставить этот поток выйти изящно и БЫСТРО ?
Я пытался использовать pthread_cancel ()
, но спящие потоки не могли быть отменены.
Я также попытался изменить условие цикла while, но выход все равно займет много времени.
И я не хочу использовать pthread_kill ()
, поскольку он может убить поток, когда он работает.
Итак, есть ли какие-нибудь хорошие идеи?