]> git.sesse.net Git - vlc/blobdiff - src/misc/objects.c
vlc_object_alive: lock-less and inlined
[vlc] / src / misc / objects.c
index 74564e3eb90b22effd5d79637e46b7cf35306861..7e8e7ef93818988ff91a06829a96009558b8363f 100644 (file)
@@ -546,35 +546,6 @@ int __vlc_object_timedwait( vlc_object_t *obj, mtime_t deadline )
 }
 
 
-/**
- * Checks whether an object has been "killed".
- * The object lock must be held.
- *
- * Typical code for an object thread could be:
- *
-   vlc_object_lock (self);
-   ...initialization...
-   while (vlc_object_alive (self))
-   {
-       ...preprocessing...
-
-       vlc_object_wait (self);
-
-       ...postprocessing...
-   }
-   ...deinitialization...
-   vlc_object_unlock (self);
- *
- *
- * @return true iff the object has not been killed yet
- */
-bool __vlc_object_alive( vlc_object_t *obj )
-{
-    vlc_assert_locked( &(vlc_internals(obj)->lock) );
-    return !obj->b_die;
-}
-
-
 /**
  * Signals an object for which the lock is held.
  * At least one thread currently sleeping in vlc_object_wait() or
@@ -613,6 +584,7 @@ void __vlc_object_kill( vlc_object_t *p_this )
     }
 
     vlc_object_signal_unlocked( p_this );
+    /* This also serves as a memory barrier toward vlc_object_alive(): */
     vlc_object_unlock( p_this );
 }