On Thursday, 4 June 2015 at 21:10:13 UTC, Sönke Ludwig wrote:
I don't know how things are now, but when I tried to move to
Vibe.d
(which was several years ago), you had to do some strange
acrobatics in
order to read the same connection in one fiber but write to it
from
another. In ae.net, reads are handled by callbacks, and all
writes are
delayed (data is queued and sent when the socket loop says the
socket is
writable), which means there is no contention and you can
"write" to any
socket from anywhere in the program (as long as it's in the
same thread).
This has been solved in the meantime. Reads and writes can now
occur concurrently in different fibers.
Good to know. What about writing from multiple fibers to the same
connection (e.g. an IRC client that needs to send PINGs from a
timer fiber and also announce events coming from other fibers)?
IIRC a connection's input/output streams needed to be explicitly
associated with a fiber?