[FFmpeg-cvslog] thread: Provide no-op variants for pthread_once

Luca Barbato git at videolan.org
Wed Oct 14 23:02:59 CEST 2015


ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Wed Oct  7 22:43:38 2015 +0200| [c53e796f8b69799b7ad6d28fbab981d37edf1bc9] | committer: Luca Barbato

thread: Provide no-op variants for pthread_once

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c53e796f8b69799b7ad6d28fbab981d37edf1bc9
---

 libavutil/thread.h |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/libavutil/thread.h b/libavutil/thread.h
index 3556544..cf0fbdd 100644
--- a/libavutil/thread.h
+++ b/libavutil/thread.h
@@ -39,6 +39,11 @@
 #define ff_mutex_unlock  pthread_mutex_unlock
 #define ff_mutex_destroy pthread_mutex_destroy
 
+#define AVOnce pthread_once_t
+#define AV_ONCE_INIT PTHREAD_ONCE_INIT
+
+#define ff_thread_once(control, routine) pthread_once(control, routine)
+
 #else
 
 #define AVMutex char
@@ -48,6 +53,18 @@
 #define ff_mutex_unlock(mutex) (0)
 #define ff_mutex_destroy(mutex) (0)
 
+#define AVOnce char
+#define AV_ONCE_INIT 0
+
+static inline int ff_thread_once(char *control, void (*routine)(void))
+{
+    if (!*control) {
+        routine();
+        *control = 1;
+    }
+    return 0;
+}
+
 #endif
 
 #endif /* AVUTIL_THREAD_H */



More information about the ffmpeg-cvslog mailing list