xserver: Branch 'master'

Keith Packard keithp at kemper.freedesktop.org
Fri May 12 07:22:10 UTC 2017


 dix/dispatch.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit d9e23ea4228575344e3b4c0443cecc5eb75356e4
Author: Keith Packard <keithp at keithp.com>
Date:   Wed May 10 21:50:45 2017 -0700

    dix: Remove clients from input and output ready queues after closing
    
    Delay removing the client from these two queues until all potential
    I/O has completed in case we mark the client as ready for reading or
    with pending output during the close operation.
    
    Bugzilla: https://bugs.freedesktop.org/100957
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Tested-by: Nick Sarnie <commendsarnex at gmail.com>
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

diff --git a/dix/dispatch.c b/dix/dispatch.c
index a2df1e0e6..8b371b678 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -3414,7 +3414,6 @@ CloseDownClient(ClientPtr client)
         if (grabState != GrabNone && grabClient == client) {
             UngrabServer(client);
         }
-        mark_client_not_ready(client);
         BITCLEAR(grabWaiters, client->index);
         DeleteClientFromAnySelections(client);
         ReleaseActiveGrabs(client);
@@ -3443,8 +3442,9 @@ CloseDownClient(ClientPtr client)
         if (ClientIsAsleep(client))
             ClientSignal(client);
         ProcessWorkQueueZombies();
-        output_pending_clear(client);
         CloseDownConnection(client);
+        output_pending_clear(client);
+        mark_client_not_ready(client);
 
         /* If the client made it to the Running stage, nClients has
          * been incremented on its behalf, so we need to decrement it


More information about the xorg-commit mailing list