マルチスレッドのプログラミング

同期バリアーの削除

バリアーが必要なくなったら、そのバリアーを削除するようにすべきです。barrier が参照するバリアーを削除し、そのバリアーによって使用されているリソースをすべて解放するには、pthread_barrier_destroy(3C) を使用します。

pthread_barrier_destroy の構文

int pthread_barrier_destroy(pthread_barrier_t *barrier);
#include <pthread.h> 
pthread_barrier_t barrier; 
int ret; 
ret = pthread_barrier_destroy(&barrier);

pthread_barrier_destroy の戻り値

pthread_barrier_destroy() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を返します。


EINVAL

説明:

barrier の値が無効です。


EBUSY

説明:

バリアーが別のスレッドによって使用されている間 (たとえば、pthread_barrier_wait() で使用されている間) にそのバリアーの削除の試行が検出されました。