From edfe08ef4efe3a08fd424684c2cafb27fbb6808f Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 25 Jan 2004 20:29:31 +0000 Subject: reviewed the locking codes, a mutex should be unlocked before destroying it git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11854 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/win32.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'loader') 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 -- cgit v1.2.3