The Ruby implentation of NonblockingServer assumes that each socket read places at most one message into the buffer.

Specifically, NonblockingServer::IOManager.read_connection currently has lines that read:

> frame = slice_frame(@buffers[fd])
> if frame
> ....

These lines should instead read:

> while (frame = slice_frame!(@buffers[fd]))
> ...

------------
Oliver Kennedy

We are all agreed that your theory is crazy.  The question
which divides us is whether it is crazy enough to have a
chance of being correct.  My own feeling is that it is not
crazy enough.
                -- Niels Bohr

Reply via email to