]> git.sesse.net Git - vlc/commitdiff
Robustify Win32 mutex assertions
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Tue, 16 Dec 2008 19:49:13 +0000 (21:49 +0200)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Tue, 16 Dec 2008 19:49:40 +0000 (21:49 +0200)
src/misc/threads.c

index c7d79574b27cae8c69d1f5076e5c6dd944c90864..a7c133e96bfc73b3f52e5f09682f9258857dce53 100644 (file)
@@ -334,7 +334,7 @@ void vlc_mutex_destroy (vlc_mutex_t *p_mutex)
     VLC_THREAD_ASSERT ("destroying mutex");
 
 #elif defined( WIN32 )
-    assert (p_mutex->initialized);
+    assert (InterlockedExchange (&p_mutex->initialized, -1) == 1);
     DeleteCriticalSection (&p_mutex->mutex);
 
 #endif
@@ -364,6 +364,7 @@ void vlc_mutex_lock (vlc_mutex_t *p_mutex)
         /* FIXME: destroy the mutex some time... */
         vlc_mutex_unlock (&super_mutex);
     }
+    assert (InterlockedExchange (&p_mutex->initialized, 1) == 1);
     EnterCriticalSection (&p_mutex->mutex);
 
 #endif
@@ -381,6 +382,7 @@ void vlc_mutex_unlock (vlc_mutex_t *p_mutex)
     VLC_THREAD_ASSERT ("unlocking mutex");
 
 #elif defined( WIN32 )
+    assert (InterlockedExchange (&p_mutex->initialized, 1) == 1);
     LeaveCriticalSection (&p_mutex->mutex);
 
 #endif