Solaris 動的トレースガイド

読み取り/書き込みロックプローブ

読み取り/書き込みロック」では、同一クリティカルセクション内で同時に複数の読み取り、または 1 回の書き込みを行うことができます。両方を同時に行うことはできません。通常、これらのロックを使用するのは、変更されるより検索される機会のほうが多い構造体や、クリティカルセクションに長時間を費やすスレッドです。読み取り/書き込みロックの操作は、Solaris の rwlock(3C) または POSIX の pthread_rwlock_init(3C) インタフェースを介して行います。

読み取り/書き込みロック関連のプローブは、表 31–2 のとおりです。それぞれの arg0 には、rwlock_t 構造体または pthread_rwlock_t 構造体 (型はすべて同じ) のポインタが入ります。これは適応型ロックを表します。arg1 には、行われた操作が書き込みであるかどうかを示すブール値が入ります。

表 31–2 読み取り/書き込みロックプローブ

rw-acquire

読み取り/書き込みロックの獲得後すぐに起動する保持イベントプローブ。 

rw-block

ロックの獲得中、スレッドがブロックする前に起動する競合イベントプローブ。有効にすると、rw-acquire プローブまたは rw-error プローブが rw-block に続いて起動します。

rw-release

読み取り/書き込みロックの解放後すぐに起動する保持イベントプローブ。 

rw-error

読み取り/書き込みロック処理でエラーが発生したときに起動するエラーイベントプローブ。arg1 には、発生したエラーの errno 値が入ります。