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

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

pthread_rwlock_tryrdlock(3T)


#include <pthread.h>

int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);

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

戻り値

rwlock が参照する読み取り / 書き込みロックオブジェクトに対する読み取りロックが獲得された場合、戻り値は 0 です。それ以外の戻り値は、エラーが発生したことを示します。


EBUSY

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