PTHREAD_RWLOCK_WRLO... FreeBSD ライブラリ関数マニュアル PTHREAD_RWLOCK_WRLO...
名称
pthread_rwlock_wrlock, pthread_rwlock_trywrlock − 書込み用の読取り / 書込 みロックの獲得 |
ライブラリ
Reentrant C Library (libc_r, −pthread) |
書式
#include <pthread.h> int |
pthread_rwlock_wrlock(pthread_rwlock_t *lock); int |
pthread_rwlock_trywrlock(pthread_rwlock_t *lock); |
解説 |
pthread_rwlock_wrlock() 関数は、 lock に対して書込み用のロックを獲得でき るまで、ブロックします。 pthread_rwlock_trywrlock() 関数は、同じ操作を実 行しますが、すぐにロックを獲得できない場合には、ブロックしません。 呼び出しているスレッドが、呼び出しが行なわれたのと同時に既にそのロックを 保持している場合には、その結果は未定義です。 |
実装に関する注
書込み側の飢餓状態を防ぐため、書込み側が読込み側よりも優先されます。 |
戻り値
問題がない場合は、 pthread_rwlock_wrlock() および pthread_rwlock_trywrlock() 関数は 0 を返します。問題がある場合は、そのエ ラーを示すためにエラー番号が返されます。 |
関連項目
pthread_rwlock_trywrlock(3), pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3) |
規格
pthread_rwlock_wrlock() および pthread_rwlock_trywrlock() 関数は、 Version 2 of the Single UNIX Specification (‘‘SUSv2’’) に適合しているはず です。 |
エラー
pthread_rwlock_trywrlock() 関数は、以下の場合に失敗します。 |
[EBUSY]
呼び出しているスレッドがブロック無しでロックを獲得でき ません。 pthread_rwlock_wrlock() および pthread_rwlock_trywrlock() 関数は、以下の 場合に失敗することがあります。 [EDEADLK] [EINVAL] [ENOMEM] 歴史 |
pthread_rwlock_wrlock() 関数は、 FreeBSD 3.0 ではじめて登場しました。 FreeBSD 10.0 August 4, 1998 FreeBSD 10.0 |