[FFmpeg-devel] [PATCH] lavc/utils: remove unnecessary locking

Michael Niedermayer michael at niedermayer.cc
Fri Dec 8 12:27:07 EET 2017


On Fri, Dec 08, 2017 at 09:49:25AM +0100, Hendrik Leppkes wrote:
> On Fri, Dec 8, 2017 at 6:09 AM, Rostislav Pehlivanov
> <atomnuker at gmail.com> wrote:
> > Its already done by lockmgr.
> >
> > Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>
> > ---
> >  libavcodec/utils.c | 6 ------
> >  1 file changed, 6 deletions(-)
> >
> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > index baf09119fe..796d24dcbb 100644
> > --- a/libavcodec/utils.c
> > +++ b/libavcodec/utils.c
> > @@ -115,7 +115,6 @@ static int (*lockmgr_cb)(void **mutex, enum AVLockOp op) = NULL;
> >  #endif
> >
> >
> > -static atomic_bool ff_avcodec_locked;
> >  static atomic_int entangled_thread_counter = ATOMIC_VAR_INIT(0);
> >  static void *codec_mutex;
> >  static void *avformat_mutex;
> > @@ -1943,7 +1942,6 @@ int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op))
> >
> >  int ff_lock_avcodec(AVCodecContext *log_ctx, const AVCodec *codec)
> >  {
> > -    _Bool exp = 0;
> >      if (codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE || !codec->init)
> >          return 0;
> >
> > @@ -1959,21 +1957,17 @@ int ff_lock_avcodec(AVCodecContext *log_ctx, const AVCodec *codec)
> >                 atomic_load(&entangled_thread_counter));
> >          if (!lockmgr_cb)
> >              av_log(log_ctx, AV_LOG_ERROR, "No lock manager is set, please see av_lockmgr_register()\n");
> > -        atomic_store(&ff_avcodec_locked, 1);
> >          ff_unlock_avcodec(codec);
> >          return AVERROR(EINVAL);
> >      }
> > -    av_assert0(atomic_compare_exchange_strong(&ff_avcodec_locked, &exp, 1));
> >      return 0;
> >  }
> >
> >  int ff_unlock_avcodec(const AVCodec *codec)
> >  {
> > -    _Bool exp = 1;
> >      if (codec->caps_internal & FF_CODEC_CAP_INIT_THREADSAFE || !codec->init)
> >          return 0;
> >
> > -    av_assert0(atomic_compare_exchange_strong(&ff_avcodec_locked, &exp, 0));
> >      atomic_fetch_add(&entangled_thread_counter, -1);
> >      if (lockmgr_cb) {
> >          if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_RELEASE))
> > --
> > 2.15.1.424.g9478a66081
> >
> 
> These variables never performed any locking, they only existed as a
> sanity check that lock/unlock is always called in pairs. If that is
> really required is up for discussion.

They shuld be usefull to detect some bugs related to locking

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The misfortune of the wise is better than the prosperity of the fool.
-- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171208/ba022b5d/attachment.sig>


More information about the ffmpeg-devel mailing list