rw_write_held
指定した読取り/書込みロックを書込み側が保持しているかどうかを確認します。
int rw_write_held(vmlinux`rwlock_t *rwlock)
rw_write_held
関数は、指定された読取り/書込みロック(rwlock)が書込み側によって保持されている場合、ゼロ以外の値を返します。ロックが読取り側のみで保持されている場合やまったく保持されていない場合、rw_write_held
はゼロを返します。
例7-42 rw_write_heldを使用して、ライターが指定されたリーダー・ライター・ロックを保持しているかを確認する方法
この例では、2つの節を使用します。最初の節は、_raw_write_lock
の入力時にトリガーされ、rw_write_held
関数を使用して書込みロックが保持されているかどうかを表示します。この段階ではロックが保持されないため、出力は0を返します。_raw_write_lock
が戻るとロックが保持され、rw_write_held
関数は1を返し、スクリプトは終了します。
fbt:vmlinux:_raw_write_lock:entry
{
self->wlock = (rwlock_t *)arg0;
printf("write entry %x\n", 0 != rw_write_held(self->wlock));
}
fbt:vmlinux:_raw_write_lock:return
/self->wlock/
{
printf("write return %x\n", 0 != rw_write_held(self->wlock));
exit(0)
}