Note sent to the cs519 mailing list:

My inbox is full of requests about problems with non-blocking
stdin, no alarms while in blocking stdin, etc.
Unlike all other filedesc stdin is the filedesc on babbage (not
on a virtual machine). Because of this if you do a blocking
read on stdin you will not receive any alarms until after the
blocking - sorry about misleading hint earlier.
Also stdin is not handled 100% in the simulator so while selecting
on non-blocking stdin you always get EOF when reading (which is
a bug).

But this should not be a problem. If a client has a request from
the user to handle it doesn't care about the next request until
the current one has been handled.
In some implementation you might be able to save some roundtrip
time but that adds up to some milliseconds and doesn't really
matter.

Try to keep your solution simple and you should have no problems.

Good luck
Snorri