標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
z/OS UNIX |
両方 | POSIX(ON) |
#define _OPEN_THREADS
#include <pthread.h>
int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
#define _UNIX03_THREADS
#include <pthread.h>
int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
pthread_rwlock_tryrdlock() 関数は、pthread_rwlock_rdlock() 関数と同様に読み取りロックを適用します。ただし、スレッドが rwlock に書き込みロックを 保持していたり、書き込み機能が rwlock でブロックされて いる場合、スレッドがあらかじめ rwlock を読み取り用に 保持していない限り、失敗します。読み取り/書き込みロックは、共用リソースを保護する場合に使用されます。
rwlock で識別される読み取りまたは書き込みロックが ロックされている場合、pthread_rwlock_tryrdlock() は即時に戻ります。
読み取りまたは書き込みロックに読み取りロックだけがあると、pthread_rwlock_tryrdlock() は、mutex を解放するために pthread_rwlock_unlock() がスレッドによって呼び出される必要がある 回数のカウントに追加されます (つまり、この関数は pthread_rwlock_rdlock() 関数と同じ動作をとります)。
正常に実行された場合、pthread_rwlock_tryrdlock() は 0 を戻します。
Single UNIX Specification、バージョン 3 の特殊な動作: 正常に実行されなかった場合、pthread_rwlock_tryrdlock() はエラーを示すエラー番号を戻します。