[vlc-devel] [PATCH 1/2] interrupt: restore interrupted to the killed state

Thomas Guillem thomas at gllm.fr
Thu Oct 24 09:02:17 CEST 2019



On Wed, Oct 23, 2019, at 21:25, Remi Denis-Courmont wrote:
> Le 2019-10-22 17:47, Thomas Guillem a écrit :
> > If a module is interrupted while waiting in a vlc_*_i11e*() function, 
> > the i11e
> > function will return an error after restoring the interrupted state 
> > (from
> > vlc_interrupt_finish()). This error will be carefully handled by the 
> > module
> > that will close itself. If a second module is in the probe list, any 
> > call to a
> > vlc_*_i11e*() function will act as not interrupted. This cause any 
> > following
> > modules in the probe list to ignore this interrupted state.
> > 
> > To fix this issue, vlc_interrupt_finish() will now restore the 
> > interrupted
> > state to the killed state.
> > ---
> >  src/misc/interrupt.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/src/misc/interrupt.c b/src/misc/interrupt.c
> > index d2a04a72b3c..54810892fc1 100644
> > --- a/src/misc/interrupt.c
> > +++ b/src/misc/interrupt.c
> > @@ -151,7 +151,7 @@ static int vlc_interrupt_finish(vlc_interrupt_t 
> > *ctx)
> >      if (ctx->interrupted)
> >      {
> >          ret = EINTR;
> > -        ctx->interrupted = false;
> > +        ctx->interrupted = atomic_load(&ctx->killed);
> 
> This looks wrong. The interruption is only there to signal the change in 
> status. It's not supposed to fire again if the status is not changed.

I sent this patch to open a discussion, I pushed the next day, maybe way too early, because vlc for iOS really need it in order to fix dialogs that are shown after the media is killed.

It's OK I can revert.

But I would like to discuss about the other way to fix the issue mentioned by this patch.
The only other fix I see if to abort the module probing (between 2 probes) if vlc_killed().

> 
> >      }
> >      vlc_mutex_unlock(&ctx->lock);
> >      return ret;
> 
> -- 
> Rémi Denis-Courmont
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list