summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--loader/win32.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/loader/win32.c b/loader/win32.c
index 6627789362..35d38b72f0 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -1379,6 +1379,8 @@ static void WINAPI expLeaveCriticalSection(CRITICAL_SECTION* c)
cs->locked=0;
pthread_mutex_unlock(&(cs->mutex));
}
+ else
+ printf("Win32 Warning: Unlocking unlocked Critical Section %p!!\n", c);
return;
}
@@ -1394,6 +1396,18 @@ static void WINAPI expDeleteCriticalSection(CRITICAL_SECTION *c)
// struct CRITSECT* cs=(struct CRITSECT*)c;
dbgprintf("DeleteCriticalSection(0x%x)\n",c);
+ if (!cs)
+ {
+ printf("Win32 Warning: Deleting uninitialized Critical Section %p!!\n", c);
+ return;
+ }
+
+ if (cs->locked)
+ {
+ printf("Win32 Warning: Deleting unlocked Critical Section %p!!\n", c);
+ pthread_mutex_unlock(&(cs->mutex));
+ }
+
#ifndef GARBAGE
pthread_mutex_destroy(&(cs->mutex));
// released by GarbageCollector in my_relase otherwise