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