Почему не выполняется код после завершения потока?
Поток принудительно завершается вызовом pthread_kill. После вызова должна пройти печать Exiting..., а ее нет. Почему?
static void *thread_func(void *args)
{
puts("Sleeping...");
for ( ;; ) ;
return NULL;
}
void main()
{
pthread_t thread;
if (pthread_create(&thread, NULL, thread_func, NULL) == 0)
{
sleep(1);
pthread_kill(thread, SIGKILL);
puts("Exiting...");
}
}
Вывод:
Sleeping...
Убито
Источник: Stack Overflow на русском