#include <synch.h> (または #include <thread.h>) int rwlock_init(rwlock_t *rwlp, int type, void * arg);
rwlock_init(3T) は、rwlp が指す読み取り / 書き込みロックを初期化してロック解除状態に設定します。type には次のいずれかを指定できます (arg は現在は無視されます)。(POSIX スレッドについては、「pthread_rwlock_init(3T)」を参照)。
複数のスレッドから同じ読み取り / 書き込みロックを同時に初期化してはいけません。0 に初期化したメモリーに領域を確保することによって、読み取り / 書き込みロックを初期化することもできます。その場合は、type に USYNC_THREAD を指定したものとみなされます。一度初期化した読み取り / 書き込みロックは、他のスレッドで使われている可能性があるので再初期化してはいけません。
#include <thread.h> rwlock_t rwlp; int ret; /* このプロセスの中だけで使用する */ ret = rwlock_init(&rwlp, USYNC_THREAD, 0);
#include <thread.h> rwlock_t rwlp; int ret; /* すべてのプロセスの間で使用する */ ret = rwlock_init(&rwlp, USYNC_PROCESS, 0);
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると、この関数は失敗し、対応する値を戻します。