Я ищу решение, как разбить бесконечный цикл, когда поток будет закончен. код довольно сложный, поэтому я показываю u только основную часть. Смотри нижеКак разбить простую для бесконечного цикла в C по потоку
for(;;){ if(stan==false)
pthread_create(&counter, NULL, count_me, NULL);
//to create thread only once in loop
stan=true;
move=getchar();
//(...) action.... doesn't matter
}
Как вы видите, главный ждет пользователя переезда в GetChar() FUNC. Я хочу разбить этот цикл, через 10 секунд создать поток.
нить Защита ниже
void *count_me(void *threadid)
{
sleep(10);
pthread_exit(NULL);
}
ТНХ за помощь
Вы не можете разбить бесконечный цикл. Если он разрушительный, это не бесконечно. Во всяком случае, просто используйте глобальную переменную - 'volatile int endLoop = 0;' и установите ее в 1 из другого потока. Проверяйте его каждый раз в цикле. – sashoalm
Я думаю, вы действительно хотите отменить 'getchar'. Если я правильно понял, этот подход может помочь вам: http://stackoverflow.com/questions/11513593/cancelling-getchar – alediaferia