]> git.sesse.net Git - vlc/blobdiff - src/win32/thread.c
Win32: vlc_mutex_lock is *not* a cancellation point
[vlc] / src / win32 / thread.c
index 08de7125c62b0a9dcb783b4dfe6b3c3548dc737f..7c0909d1b7e4a6db81df322dc1f1014aeabc9d6e 100644 (file)
@@ -191,6 +191,7 @@ void vlc_mutex_lock (vlc_mutex_t *p_mutex)
 {
     if (!p_mutex->dynamic)
     {   /* static mutexes */
+        int canc = vlc_savecancel ();
         assert (p_mutex != &super_mutex); /* this one cannot be static */
 
         vlc_mutex_lock (&super_mutex);
@@ -202,6 +203,7 @@ void vlc_mutex_lock (vlc_mutex_t *p_mutex)
         }
         p_mutex->locked = true;
         vlc_mutex_unlock (&super_mutex);
+        vlc_restorecancel (canc);
         return;
     }