[vlc-devel] commit: Flawed logic ( Rémi Denis-Courmont )
    git version control 
    git at videolan.org
       
    Sun Jan 18 09:43:57 CET 2009
    
    
  
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Sun Jan 18 10:43:31 2009 +0200| [871a8bb5e18523acc703b97bae19c15a18487579] | committer: Rémi Denis-Courmont 
Flawed logic
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=871a8bb5e18523acc703b97bae19c15a18487579
---
 src/misc/objects.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/misc/objects.c b/src/misc/objects.c
index d72f8d8..29b9078 100644
--- a/src/misc/objects.c
+++ b/src/misc/objects.c
@@ -412,12 +412,14 @@ int vlc_object_waitpipe( vlc_object_t *obj )
         assert (internals->pipes[1] == -1);
 
 #ifdef HAVE_EVENTFD
-        if ((internals->pipes[0] = internals->pipes[1] = eventfd (0, 0)) == -1)
+        if ((internals->pipes[0] = eventfd (0, 0)) == -1)
 #endif
-        if (pipe (internals->pipes))
-            internals->pipes[0] = internals->pipes[1] = -1;
-        else
-        if (obj->b_die)
+        {
+            if (pipe (internals->pipes))
+                internals->pipes[0] = internals->pipes[1] = -1;
+        }
+
+        if (internals->pipes[0] != -1 && obj->b_die)
         {   /* Race condition: vlc_object_kill() already invoked! */
             msg_Dbg (obj, "waitpipe: object already dying");
             write (internals->pipes[1], &(uint64_t){ 1 }, sizeof (uint64_t));
    
    
More information about the vlc-devel
mailing list