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