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

読み取り/書き込みロックの非ブロック読み取りロックの獲得

pthread_rwlock_tryrdlock(3C) は、pthread_rwlock_rdlock() と同様に読み取りロックを適用します。ただし、いずれかのスレッドが rwlock に書き込みロックを保持しているか、rwlock で書き込みスレッドがブロックされている場合、この関数は失敗します。

pthread_rwlock_tryrdlock の構文

#include <pthread.h>

int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);

pthread_rwlock_tryrdlock の戻り値

pthread_rwlock_tryrdlock() は、rwlock が参照する読み取り/書き込みロックオブジェクトに対する読み取りロックが獲得された場合、0 を返します。ロックが獲得されなかった場合は、エラーを示すエラー番号が返されます。


EBUSY

説明:

書き込みが読み取り/書き込みロックを保持しているか、読み取り/書き込みロックで書き込みスレッドがブロックされているため、読み取りのための読み取り/書き込みロックを獲得できません。