--- description: "Learn more about: Warning C26112" title: Warning C26112 ms.date: 11/04/2016 f1_keywords: ["C26112"] helpviewer_keywords: ["C26112"] ms.assetid: 926de738-b9b0-43d7-9137-ab2daa44ad4d --- # Warning C26112 > Caller cannot hold any lock before calling '*func*'. The annotation `_Requires_no_locks_held_` imposes a precondition that the caller must not hold any lock while it calls the function. Warning C26112 is issued when a function fails to release all locks before it calls another function. ## Example The following example generates warning C26112 because the `_Requires_no_locks_held_` precondition is violated by the call to `NoLocksAllowed` within the locked section. ```cpp typedef struct _DATA { CRITICAL_SECTION cs; } DATA; _Requires_no_locks_held_ void NoLocksAllowed(DATA* p) { // Lock sensitive operations here } void LocksHeldFunction(DATA* p) { EnterCriticalSection(&p->cs); NoLocksAllowed(p); // Warning C26112 LeaveCriticalSection(&p->cs); } ```