Hi all,
It turns out this design doesn't work. The reason is that we made the
following assumption: given a client like:
s1 = connect(); send(s1, "msg1"); close(s1);
s2 = connect(); send(s2, "msg2"); close(s2);
And a server like:
char buf[...];
while (true) {
s = accept();
recv(s, buf);
A few months ago, there was a dev list thread on whether libprocess
should provide ordered delivery [1]. The consensus then was that
libprocess doesn't provide ordered delivery in a few corner cases, but
that we should fix that behavior to guarantee ordered (but unreliable)
message delivery.