From 181e3d861454c1315186945160730adf8ade9c05 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Wed, 15 Aug 2001 23:32:47 +0000
Subject: [PATCH] Implemented _CheckNotSysLevel.

---
 include/winbase.h    | 1 +
 scheduler/syslevel.c | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/winbase.h b/include/winbase.h
index 2ae06cadbb8..e32946fb3ab 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1918,6 +1918,7 @@ VOID        WINAPI RestoreThunkLock(DWORD);
 void        WINAPI SetProcessDword(DWORD,INT,DWORD);
 VOID        WINAPI UnMapLS(DWORD);
 HFILE       WINAPI Win32HandleToDosFileHandle(HANDLE);
+VOID        WINAPI _CheckNotSysLevel(SYSLEVEL *lock);
 DWORD       WINAPI _ConfirmWin16Lock(void);
 DWORD       WINAPI _ConfirmSysLevel(SYSLEVEL*);
 VOID        WINAPI _EnterSysLevel(SYSLEVEL*);
diff --git a/scheduler/syslevel.c b/scheduler/syslevel.c
index f03d8dcd36e..90f89892fab 100644
--- a/scheduler/syslevel.c
+++ b/scheduler/syslevel.c
@@ -145,7 +145,11 @@ DWORD WINAPI _ConfirmSysLevel(SYSLEVEL *lock)
  */
 VOID WINAPI _CheckNotSysLevel(SYSLEVEL *lock)
 {
-    FIXME("(%p)\n", lock);
+    if (lock && lock->crst.OwningThread == GetCurrentThreadId() && lock->crst.RecursionCount)
+    {
+        ERR( "Holding lock %p level %d\n", lock, lock->level );
+        DbgBreakPoint();
+    }
 }
 
 
-- 
GitLab