summaryrefslogtreecommitdiff
path: root/os
diff options
context:
space:
mode:
Diffstat (limited to 'os')
-rw-r--r--os/io.c6
1 files changed, 5 insertions, 1 deletions
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);
}
}