[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