mirror of https://github.com/mpv-player/mpv
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
This commit is contained in:
parent
ca02bdcc20
commit
edfe08ef4e
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue