[vlc-commits] shine: remove useless lock
Rémi Denis-Courmont
git at videolan.org
Mon Oct 12 20:29:23 CEST 2020
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Mon Oct 12 21:21:28 2020 +0300| [b24d2a768d2b580792b4e80d5b14834dd6a7e476] | committer: Rémi Denis-Courmont
shine: remove useless lock
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b24d2a768d2b580792b4e80d5b14834dd6a7e476
---
modules/codec/shine.c | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)
diff --git a/modules/codec/shine.c b/modules/codec/shine.c
index c07430368a..e8fcc68f07 100644
--- a/modules/codec/shine.c
+++ b/modules/codec/shine.c
@@ -27,6 +27,8 @@
# include "config.h"
#endif
+#include <stdatomic.h>
+
#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_codec.h>
@@ -66,11 +68,7 @@ vlc_module_begin();
set_callbacks( OpenEncoder, CloseEncoder );
vlc_module_end();
-static struct
-{
- bool busy;
- vlc_mutex_t lock;
-} entrant = { false, VLC_STATIC_MUTEX, };
+static atomic_bool busy = ATOMIC_VAR_INIT(false);
static int OpenEncoder( vlc_object_t *p_this )
{
@@ -100,15 +98,11 @@ static int OpenEncoder( vlc_object_t *p_this )
p_enc->fmt_out.i_bitrate, p_enc->fmt_out.audio.i_rate,
p_enc->fmt_out.audio.i_channels );
- vlc_mutex_lock( &entrant.lock );
- if( entrant.busy )
+ if( atomic_exchange(&busy, true) )
{
msg_Err( p_enc, "encoder already in progress" );
- vlc_mutex_unlock( &entrant.lock );
return VLC_EGENERIC;
}
- entrant.busy = true;
- vlc_mutex_unlock( &entrant.lock );
p_enc->p_sys = p_sys = calloc( 1, sizeof( *p_sys ) );
if( !p_sys )
@@ -147,9 +141,7 @@ static int OpenEncoder( vlc_object_t *p_this )
return VLC_SUCCESS;
enomem:
- vlc_mutex_lock( &entrant.lock );
- entrant.busy = false;
- vlc_mutex_unlock( &entrant.lock );
+ atomic_store(&busy, false);
return VLC_ENOMEM;
}
@@ -279,9 +271,7 @@ static void CloseEncoder( vlc_object_t *p_this )
{
encoder_sys_t *p_sys = ((encoder_t*)p_this)->p_sys;
- vlc_mutex_lock( &entrant.lock );
- entrant.busy = false;
- vlc_mutex_unlock( &entrant.lock );
+ atomic_store(&busy, false);
/* TODO: we should send the last PCM block padded with 0
* But we don't know if other blocks will come before it's too late */
More information about the vlc-commits
mailing list