[FFmpeg-devel] [PATCH 6/7] avutil/opencl: convert to stdatomic

James Almer jamrial at gmail.com
Thu Mar 23 01:34:11 EET 2017


Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavutil/opencl.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavutil/opencl.c b/libavutil/opencl.c
index af35770e06..9b6c8d10d8 100644
--- a/libavutil/opencl.c
+++ b/libavutil/opencl.c
@@ -29,7 +29,7 @@
 
 #if HAVE_THREADS
 #include "thread.h"
-#include "atomic.h"
+#include <stdatomic.h>
 
 static pthread_mutex_t * volatile atomic_opencl_lock = NULL;
 #define LOCK_OPENCL pthread_mutex_lock(atomic_opencl_lock)
@@ -351,13 +351,14 @@ static inline int init_opencl_mtx(void)
     if (!atomic_opencl_lock) {
         int err;
         pthread_mutex_t *tmp = av_malloc(sizeof(pthread_mutex_t));
+        const pthread_mutex_t *cmp = NULL;
         if (!tmp)
             return AVERROR(ENOMEM);
         if ((err = pthread_mutex_init(tmp, NULL))) {
             av_free(tmp);
             return AVERROR(err);
         }
-        if (avpriv_atomic_ptr_cas((void * volatile *)&atomic_opencl_lock, NULL, tmp)) {
+        if (!atomic_compare_exchange_strong(&atomic_opencl_lock, &cmp, tmp)) {
             pthread_mutex_destroy(tmp);
             av_free(tmp);
         }
-- 
2.12.0



More information about the ffmpeg-devel mailing list