std.asio?

Robert jfanatiker at gmx.at
Tue Mar 12 05:49:05 PDT 2013


On Tue, 2013-03-12 at 11:07 +0100, Martin Drasar wrote:
> It was related to blocking operations like readln stopping the event
> loop. See
> http://news.rejectedsoftware.com/groups/rejectedsoftware.vibed/thread/693/.
> No real solution was found as this requires either the fiber support
> in
> std.concurrency or std.concurrency support in vibe.d.
Your problem is exactly the reason why I would love async operation
support in the standard library including a standard event loop. The
moment you have to wait for something ( a second event loop or just a
standard synchronous operation ) you are basically screwed. A single
event loop which is capable of waiting for all kind of events (also
std.concurrency messages from other threads) would solve the problem. 

Currently we have many different event loop implementations like:
- boost::asio::io_service
- libevent
- glib/Qt
- every other GUI toolkit out there

seriously hampering interoperability between libraries. I hope it is
possible to establish a standard event loop for at least D in the
future, although I still have to check out whether this is realistic or
if there are in fact serious technical differences between existing
event loops due to different implementation goals. (libevent targeting
high performance servers, might not be suitable for a GUI toolkit and
vice versa, but I don't know.)


Best regards,

Robert



More information about the Digitalmars-d mailing list