プログラムのパフォーマンス解析

locks [-col] [directly] inverted by func ...

指定された関数の 1 つを呼び出すことで、逆転させられる可能性のあるロックのみを表示します(「ロックの逆転」 を参照) 。

キーワード directly が指定された場合は、指定された関数 (スレッドライブラリルーチンを使って、実際にロックの獲得および解放を行う関数) によって直接逆転させられるロックのみが表示されます。キーワード directly が指定されない場合は、指定された関数のどれか 1 つによって保持され、そこから呼び出される関数によって逆転させられる (以下同様の) ロックも表示されます。たとえば、以下のコードでは、f1m1 を直接逆転し、さらに、m2 を間接的に逆転しています。


f1() { pthread_mutex_unlock(&m1); f2(); pthread_mutex_lock(&m1); }
f2() { f3(); }
f3() { pthread_mutex_unlock(&m2); pthread_mutex_lock(&m2); }