Am 27.03.2015 um 19:56 schrieb Walter Bright:
On 3/27/2015 5:15 AM, Sönke Ludwig wrote:
It has, that is more or less the original selling point. It also keeps an
internal thread pool where each thread has a dynamic set of reusable
fibers to
execute tasks. Each fiber is bound to a certain thread, though, and
they have
to, because otherwise things like thread local storage or other thread
specific
code (e.g. the classic OpenGL model, certain COM modes etc.) would break.


It's awesome that vibe has that! How about replacing the fiber support
in druntime with that?

It's actually based on the fiber support in Druntime. It would definitely be great to get the event loop and the scheduler into Druntime/Phobos, too. But it needs to be integrated in many places at the same time (core.sync.*, std.concurrency, std.stdio, std.socket etc.) to avoid bad surprises for users. We'd need to decide how to cut that work into manageable pieces.

Fortunately there is now already an event loop abstraction written in pure D [1], which should be integrated first, because the fiber scheduler itself isn't worth much without an event loop.

[1]: https://github.com/etcimon/libasync

Reply via email to