/* Test that all threads are killed when exit() is called. */ #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> void *thread_proc(void *arg) { /* Wait for main thread to block. */ sleep(2); /* Exit the program. */ exit(0); return NULL; } int main(void) { pthread_t thread; void *status; if (pthread_create(&thread, NULL, thread_proc, NULL)) { perror("pthread_create"); return 1; } if (pthread_join(thread, &status)) { perror("pthread_join"); return 1; } /* This code should not be reached. */ fprintf(stderr, "Thread joined\n"); return 0; }