]> git.sesse.net Git - vlc/commitdiff
qtcapture: Don't release objects when libvlc quit, else we may loose our main thread...
authorPierre d'Herbemont <pdherbemont@videolan.org>
Wed, 16 Jul 2008 18:49:23 +0000 (20:49 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Wed, 16 Jul 2008 18:49:23 +0000 (20:49 +0200)
modules/access/qtcapture.m

index fba2fbe7afa09c073eaf8663399e5ca2f3c22180..78fb6049067cd46fedc117cfa86f5a5228fff2f8 100644 (file)
@@ -317,10 +317,16 @@ static void Close( vlc_object_t *p_this )
     demux_t     *p_demux = (demux_t*)p_this;
     demux_sys_t *p_sys = p_demux->p_sys;
 
-    [p_sys->session stopRunning];
-    [p_sys->output release];
-    [p_sys->session release];
-    [p_sys->device release];
+    /* Hack: if libvlc was killed, main interface thread was,
+     * and poor QTKit needs it, so don't tell him.
+     * Else we dead lock. */
+    if( vlc_object_alive(p_this->p_libvlc))
+    {
+        [p_sys->session stopRunning];
+        [p_sys->output release];
+        [p_sys->session release];
+        [p_sys->device release];
+    }
     free( p_sys );
 
     [pool release];