< 目次

ダングリング・ロック

タスクが終了する前にロックを解放しないと発生します。

問題のタイプ: ダングリング・ロック

ID

コードの場所

説明

1

割り当てサイト

存在する場合、ロックが作成された場所と関連するコールスタックを示します。

2

ロック所有

存在する場合、ロックが最後に要求された場所と関連するコールスタックを示します。

3

並列サイト

存在する場合、ロックを要求するタスクを含む並列サイトのサイト開始アノテーションの場所と関連するコールスタックを示します。

void problem() 
{ 
     ANNOTATE_SITE_BEGIN(dangle_site1);               // 並列サイト      
          ANNOTATE_TASK_BEGIN(task1); 
               ANNOTATE_LOCK_ACQUIRE(&dangle);      // ロックを所有 
          ANNOTATE_TASK_END(); 
     // ...     ANNOTATE_SITE_END(); 
}

この例では次のことが分かります。

修正方法