diff --git a/os/io.c b/os/io.c index 714516ee3..f80580cfc 100644 --- a/os/io.c +++ b/os/io.c @@ -636,7 +636,10 @@ SetCriticalOutputPending(void) /***************** * AbortClient: * When a write error occurs to a client, close - * the connection and clean things up. + * the connection and clean things up. Mark + * the client as 'ready' so that the server will + * try to read from it again, notice that the fd is + * closed and clean up from there. *****************/ static void @@ -648,6 +651,7 @@ AbortClient(ClientPtr client) _XSERVTransDisconnect(oc->trans_conn); _XSERVTransClose(oc->trans_conn); oc->trans_conn = NULL; + mark_client_ready(client); } }