From 792a094cec140c554a966f0df29d077139b8616d Mon Sep 17 00:00:00 2001 From: Michal Srb Date: Fri, 27 Oct 2017 11:12:16 +0200 Subject: [PATCH] os/inputthread: Force unlock when stopping thread. The inputthread is kept locked all the time while X server's VT is not active. If the X server is terminated while not active, it will be stuck forever in InputThreadFini waiting for the thread to join, but it wouldn't because it is locked. --- This fixes the X server termination while its VT is not active. I think it should be safe to force unlock it from InputThreadFini - X server is terminating and nothing else should race there, but I am not completely sure. os/inputthread.c | 1 + 1 file changed, 1 insertion(+) diff --git a/os/inputthread.c b/os/inputthread.c index 721e86312..dc4eb9f20 100644 --- a/os/inputthread.c +++ b/os/inputthread.c @@ -497,6 +497,7 @@ InputThreadFini(void) /* Close the pipe to get the input thread to shut down */ close(hotplugPipeWrite); + input_force_unlock(); pthread_join(inputThreadInfo->thread, NULL); xorg_list_for_each_entry_safe(dev, next, &inputThreadInfo->devs, node) { -- 2.12.3