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

pthread_rwlock_destroy(3T)


#include <pthread.h>

int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);

pthread_rwlock_t  rwlock = PTHREAD_RWLOCK_INITIALIZER;

pthread_rwlock_destroy(3T) は、rwlock が示す読み取り / 書き込みロックオブジェクトを削除し、このロックで使用されていたリソースを解放します。削除したオブジェクトを、pthread_rwlock_init() の呼び出しによって再び初期化する前に使用した場合、その結果は不定です。実装によっては、pthread_rwlock_destroy() は、rwlock が参照するオブジェクトに不正な値を設定する場合もあります。いずれかのスレッドが rwlock を保持しているときに pthread_rwlock_destroy() を呼び出した場合の結果は不定です。初期化されていない読み取り / 書き込みロックを削除しようとした場合に発生する動作も不定です。また、削除された読み取り / 書き込みロックオブジェクトは、再度 pthread_rwlock_init() で初期化できます。削除した読み取り / 書き込みロックオブジェクトを初期化せずに参照した場合も不定です。Solaris スレッドについては、「rwlock_destroy(3T) 」 を参照してください。

戻り値

正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。


EINVAL

attr または rwlock が示す値は無効です。