C26115

警告的 C26115:未能释放对函数的锁 func lock 。

语法上的范围锁的实现 访问 ,并锁定 版本 在 C/C++ 程序对受该语言不执行任何操作。功能可以通过对并发状态的可观测对象的修改引入一个锁的副作用。例如,锁定包装函数添加锁获取数或锁计数,特定的锁定。

使用 _Acquires_lock_ 或 _Releases_lock_,可以分别说明以及如何锁定的副作用获取或锁定版本的功能,。没有此类批注,,在返回之后,函数接受不更改任何锁计数。如果访问,而且版本不平衡,它们视为 隔离。,当函数引入了孤立锁时,警告 C26115 问题。

示例

下面的示例生成警告 C26115,因为在不说明与 _Acquires_lock_函数孤立锁。

    typedef struct _DATA 
    {
        CRITICAL_SECTION cs;
    } DATA;

    void FailToReleaseLock(int flag, DATA* p) 
    {
        EnterCriticalSection(&p->cs); 

        if (flag)
            return; // Warning C26115

        LeaveCriticalSection(&p->cs);
    }