vlc_thread_fatal: disable thread cancellation
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 20 Oct 2009 20:37:36 +0000 (23:37 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 20 Oct 2009 20:37:36 +0000 (23:37 +0300)
It shouldn't matter much when we get to such a sorry code path, but
better safe than sorry.

src/misc/pthread.c

index ce604f4..1379163 100644 (file)
@@ -89,6 +89,7 @@ static void
 vlc_thread_fatal (const char *action, int error,
                   const char *function, const char *file, unsigned line)
 {
 vlc_thread_fatal (const char *action, int error,
                   const char *function, const char *file, unsigned line)
 {
+    int canc = vlc_savecancel ();
     fprintf (stderr, "LibVLC fatal error %s (%d) in thread %lu ",
              action, error, vlc_threadid ());
     vlc_trace (function, file, line);
     fprintf (stderr, "LibVLC fatal error %s (%d) in thread %lu ",
              action, error, vlc_threadid ());
     vlc_trace (function, file, line);
@@ -119,6 +120,7 @@ vlc_thread_fatal (const char *action, int error,
 #endif
     fflush (stderr);
 
 #endif
     fflush (stderr);
 
+    vlc_restorecancel (canc);
     abort ();
 }
 
     abort ();
 }