C26115
警告 C26115: 関数 <func> のロックを <lock> 解除しないようにします。
構文上のスコープ ロックは適用する言語に応じて C/C++ プログラムの リリースの ペアを実行 し ロックします。関数は同時実行の状態を観察可能な変更によってロックの副作用が生じることがあります。たとえばロックのラッパー関数はロックが取得されるどちらもの取得解放の数または特定のロックのロック カウントをインクリメントします。
ロックの副作用が _Acquires_lock_ または _Releases_lock_ を使用してリリースを取得またはロックする場合を果たす関数を個別に指定できます。このような注釈を使用せずにロック カウントは変更されませんが戻った後関数が想定されます。派生しリリースが分散いない場合は デタッチされたと 見なされます。警告 C26115 は関数がデタッチされたロックを導入した場合に発生します。
使用例
次の例では _Acquires_lock_ が指定されていない関数にデタッチされたロックするため C26115 警告が生成されます。
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
void FailToReleaseLock(int flag, DATA* p)
{
EnterCriticalSection(&p->cs);
if (flag)
return; // Warning C26115
LeaveCriticalSection(&p->cs);
}