ffmpeg | branch: master | Michael Niedermayer <[email protected]> | Fri Mar 13 22:28:25 2015 +0100| [b14de8e6895cf1191e2c2f94e1c33db296a34342] | committer: Michael Niedermayer
avcodec/utils: use atomic operations on entangled_thread_counter Signed-off-by: Michael Niedermayer <[email protected]> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b14de8e6895cf1191e2c2f94e1c33db296a34342 --- libavcodec/utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 14a4d7b..82f74d6 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -3610,8 +3610,8 @@ int ff_lock_avcodec(AVCodecContext *log_ctx, AVCodec *codec) if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_OBTAIN)) return -1; } - entangled_thread_counter++; - if (entangled_thread_counter != 1 && + + if (avpriv_atomic_int_add_and_fetch(&entangled_thread_counter, 1) != 1 && !(codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE)) { av_log(log_ctx, AV_LOG_ERROR, "Insufficient thread locking. At least %d threads are " @@ -3632,7 +3632,7 @@ int ff_unlock_avcodec(void) { av_assert0(ff_avcodec_locked); ff_avcodec_locked = 0; - entangled_thread_counter--; + avpriv_atomic_int_add_and_fetch(&entangled_thread_counter, -1); if (lockmgr_cb) { if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_RELEASE)) return -1; _______________________________________________ ffmpeg-cvslog mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
