こんなコードがあったとして #include <pthread.h> void *sub(void *unused) { pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t thread; pthread_create(&thread, NULL, sub, NULL); pthread_join(thread, NULL); return 0; } これをこのようにコンパイルすると $ gcc -lpthread -Wall foo.c foo.c: In function ‘sub’: foo.c:5: warning: control reaches end of non-void functionこんな感じで警告が出る。 pthread_exit はスレッドを抜けるときにスタックなどをクリーンアップし