[vlc-commits] interrupt: restore interrupted to the killed state
Thomas Guillem
git at videolan.org
Wed Oct 23 17:12:43 CEST 2019
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Tue Oct 22 16:29:57 2019 +0200| [2ec2e558d860ed1b2243a576e8e99e396304cd8d] | committer: Thomas Guillem
interrupt: restore interrupted to the killed state
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.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2ec2e558d860ed1b2243a576e8e99e396304cd8d
---
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 d2a04a72b3..54810892fc 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);
}
vlc_mutex_unlock(&ctx->lock);
return ret;
More information about the vlc-commits
mailing list