pthread_exit

pthread_exitは、スレッドを終了するライブラリ関数・・・。

Man page of PTHREAD_EXIT

これまで、return文でstart_routineを終了していたが、プロセスにおけるexitと同様に、スレッドにおいてはpthread_exitで終了できる・・・。
引数は終了コードを格納した変数のアドレスを(void *)にキャストしたもの・・・。

前回の終了部分をreturn文からpthread_exitに変えているだけ・・・。

$ ./pthread_exit
i = 1, no = 3, message = No.3
i = 1, no = 4, message = No.4
i = 1, no = 2, message = No.2
i = 1, no = 1, message = No.1
i = 1, no = 0, message = No.0
i = 2, no = 4, message = No.4
i = 2, no = 3, message = No.3
i = 2, no = 2, message = No.2
i = 2, no = 1, message = No.1
i = 2, no = 0, message = No.0
i = 3, no = 4, message = No.4
i = 3, no = 3, message = No.3
i = 3, no = 2, message = No.2
i = 3, no = 1, message = No.1
i = 3, no = 0, message = No.0
i = 4, no = 3, message = No.3
i = 4, no = 4, message = No.4
i = 4, no = 2, message = No.2
i = 4, no = 1, message = No.1
i = 4, no = 0, message = No.0
i = 5, no = 4, message = No.4
i = 5, no = 3, message = No.3
i = 5, no = 2, message = No.2
i = 5, no = 1, message = No.1
i = 5, no = 0, message = No.0
return_code[0] = 0
return_code[1] = 1
return_code[2] = 2
return_code[3] = 3
return_code[4] = 4
$

return文と同様にpthread_exitでも終了コード返せた・・・。

Sample/pthread_exit.c at master · bg1bgst333/Sample · GitHub