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

pthread_mutex_unlock(3T)

pthread_mutex_unlock() は、mp が指す mutex のロックを解除します。

プロトタイプ:
int	pthread_mutex_unlock(pthread_mutex_t *mp); 
#include <pthread.h>

pthread_mutex_t mp;
int ret;

ret = pthread_ mutex_unlock(&mp); /* mutex を解除する */

mutex はロックされていて、呼び出しスレッドがその mutex を最後にロックしたスレッド (つまり、呼び出しスレッドがその mutex を保持している) でなければなりません。その mutex が使用可能になるのを待っているスレッドが他にある場合は、その mutex ロックに対する待ち行列内の先頭のスレッドのブロックが解除されます。

戻り値

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


EINVAL

mp で指定された値が、初期化された mutex オブジェクトを表していません。