
Hi Rene, --- Rene Rivera <grafik.list@redshift-software.com> wrote:
The sender doesn't discard.
I didn't mean that the sender discards, only that the datagram being sent can be discarded immediately by the TCP/IP stack if the receiving socket's buffer is full. The sender is not aware of this.
If it where any other way the test that I wrote would show "missing" receives.
It does indeed exhibit many missing receives on two of my systems (one Linux, the other Mac OS X, both uniprocessor).
But Calebs results show all messages arriving, as would be expected from the localhost device.
I suspect that Caleb is using a multiprocessor machine, and so the behaviour I described does not happen for him. However on my systems with "flow control" enabled it is still necessary to include the additional performance optimisations to get the substantial improvement. It would be interesting to rerun the test on a multiprocessor machine with these changes included. Cheers, Chris