[vlc-devel] [PATCH 1/2] interrupt: restore interrupted to the killed state
Thomas Guillem
thomas at gllm.fr
Tue Oct 22 16:47:18 CEST 2019
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);
}
vlc_mutex_unlock(&ctx->lock);
return ret;
--
2.20.1
More information about the vlc-devel
mailing list