]> git.sesse.net Git - vlc/commitdiff
barrier(): issues a full memory barrier
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 5 Jul 2008 11:07:45 +0000 (14:07 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 5 Jul 2008 11:07:45 +0000 (14:07 +0300)
include/vlc_threads.h

index 89e8ccc48843168759f65adebe6f490196130501..5779ee8758a54feb30ee66c28ff175bdc666f8c8 100644 (file)
@@ -559,6 +559,22 @@ static inline int vlc_spin_init (vlc_spinlock_t *spin)
 # define vlc_spin_destroy vlc_mutex_destroy
 #endif
 
+/**
+ * Issues a full memory barrier.
+ */
+static inline void barrier (void)
+{
+#if defined (__GNUC__) /* FIXME: || defined (ICC_whatever) */
+    __sync_synchronize ();
+#elif defined (LIBVLC_USE_PTHREAD)
+    static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+    pthread_mutex_lock (&lock);
+    pthread_mutex_unlock (&lock);
+#else
+# error barrier not implemented!
+#endif
+}
+
 /*****************************************************************************
  * vlc_thread_create: create a thread
  *****************************************************************************/