From 062b50f5989451b945b39211ab4fe29d46a646ab Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 1 Jul 2005 19:51:00 +0000 Subject: [PATCH] Document blocking constraints. --- doc/clients-howto | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/clients-howto b/doc/clients-howto index e5e90602f..593220fbf 100644 --- a/doc/clients-howto +++ b/doc/clients-howto @@ -53,9 +53,15 @@ Clients should not send overlong or malformed UTF-8 sequences. A client is called synchronous if it waits for a prompt before it sends another line of input. Else it is called asynchronous. +Asynchronous clients must take care to avoid blocking on sending +input. If the client process blocks that way, it can't receive server +output until the server reads more input. That may never happen, +because the server may well block on output, which then deadlocks the +session. + An Empire session consists of two phases: login and playing. emp_client is synchronous during the former and asynchronous during -the latter. +the latter. It can currently deadlock as described above. Login phase ----------- -- 2.43.0