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

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

pthread_rwlock_trywrlock(3THR)


#include <pthread.h>

int pthread_rwlock_trywrlock(pthread_rwlock_t  *rwlock);

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

pthread_rwlock_trywrlock() が、初期化されていない読み取り / 書き込みロックに対して呼び出された場合、その結果は不定です。

書き込みのための読み取り / 書き込みロックを待っているスレッドにシグナルが送られた場合、スレッドはシグナルハンドラから戻ると、見かけ上割り込みがなかった場合と同様に、書き込みのための読み取り / 書き込みロック待ちを再開します。

戻り値

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


EBUSY

読み取りまたは書き込みでロック済みのため、書き込みのための読み取り / 書き込みロックを獲得できません。