mutex_owner

指定したカーネル相互排他ロックの現在の所有者にスレッド・ポインタを返します。

vmlinux`struct task_struct mutex_owner(vmlinux`struct mutex *)

mutex_owner関数は、指定された適応型カーネル相互排他ロックの現在の所有者のスレッド・ポインタを返します。指定された適応型相互排他ロックの所有者が存在しない場合や、指定された相互排他ロックがスピン相互排他ロックの場合、mutex_ownerNULLを返します。

例7-29 mutex_ownerを使用してコール側スレッドが相互排他ロックの所有権を持っていないかどうかを確認する方法

fbt::mutex_lock:entry
{
        this->mutex = arg0;
}

fbt::mutex_lock:return
{
        this->owner = mutex_owner((struct mutex *)this->mutex);
}

fbt::mutex_lock:return
/this->owner != curthread/
{
        printf("current thread is not current owner of owned lock\n");
        exit(1);
}