If you've got two clients backing up via the afmserver, and
one is on a faster network connection than the other,
everything slows down to the speed of the slowest
The problem seems to be that because the afmserver
is mostly single-threaded, and it blocks waiting for
an entire frame to be read, it's constantly sleeping
on the slower client to get a full frame of data through.
This is needless to say, bad.
Not sure there's an easy fix for this one. :(
The normal way I'd fix it is to change everything
to use non-blocking I/O, read until EWOULDBLOCK
and if it isn't a complete frame, stash the partial result
until next time.