pthread_rwlock_trywrlock() - 読み取りまたは書き込みロック・オブジェクトを書き込み用にロックする試み

標準

標準/拡張機能 C/C++ 依存項目

z/OS UNIX
Single UNIX Specification、バージョン 3

両方

POSIX(ON)
OS/390 V2R7

形式

#define _OPEN_THREADS
#include <pthread.h>

int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);
SUSV3:
#define _UNIX03_THREADS
#include <pthread.h>

int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);

機能説明

pthread_rwlock_trywrlock() 関数は、pthread_rwlock_wrlock() 関数と同様に書き込みロックを適用します。ただし、スレッドが rwlock に読み取りロックまたは書き込みロックを 保持している場合は、失敗します。読み取り/書き込みロックは、共用リソースを保護する場合に使用されます。

rwlock で識別される読み取りまたは書き込みロックが ロックされている場合、pthread_rwlock_trywrlock() は即時に戻ります。

戻り値

正常に実行された場合、pthread_rwlock_trywrlock() は 0 を戻します。

正常に実行されなかった場合、pthread_rwlock_trywrlock() は -1 を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
EBUSY
rwlock は既にロックされていたので、取得できませんでした。
EINVAL
rwlock によって指定された値は無効です。
ENOMEM
ロックを取得するにはメモリーが不十分です。この errno は 専用パスでのみ発生します。

Single UNIX Specification、バージョン 3 の特殊な動作: 正常に実行されなかった場合、pthread_rwlock_trywrlock() はエラーを示すエラー番号を戻します。

関連情報