Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Caller failing to hold lock 'lock' before calling function 'func'.
When a lock is required, make sure to clarify whether the function itself, or its caller, should acquire the lock. Warning C26110 is issued when there's a violation of the _Requires_lock_held_
annotation, or other lock-related annotations. For more information, see Annotating Locking Behavior
Example
In the following example, warning C26110 is generated because the annotation _Requires_lock_held_
on function LockRequired
states that the caller of LockRequired
must acquire the lock before it calls LockRequired
. Without this annotation, LockRequired
has to acquire the lock before it accesses any shared data protected by the lock.
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_held_(p->cs)
void LockRequired(DATA* p)
{
p->d = 0;
}
void LockNotHeld(DATA* p)
{
LockRequired(p); // Warning C26110
}