Broadcast when the object is killed
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sun, 7 Sep 2008 18:08:15 +0000 (21:08 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sun, 7 Sep 2008 18:08:15 +0000 (21:08 +0300)
So there are no deadlocks if multiple threads are waiting on the same
object (although that's not a very brilliant idea).

src/misc/objects.c

index 272fd4c..7782245 100644 (file)
@@ -539,7 +539,7 @@ void __vlc_object_kill( vlc_object_t *p_this )
         close_nocancel (fd);
     }
 
         close_nocancel (fd);
     }
 
-    vlc_object_signal_unlocked( p_this );
+    vlc_cond_broadcast (&priv->wait);
     /* This also serves as a memory barrier toward vlc_object_alive(): */
     vlc_object_unlock( p_this );
 }
     /* This also serves as a memory barrier toward vlc_object_alive(): */
     vlc_object_unlock( p_this );
 }