On Tuesday, 28 October 2014 at 08:02:23 UTC, Martin Nowak wrote:
On Monday, 27 October 2014 at 21:43:47 UTC, Sean Kelly wrote:
Yep. Every logical thread is a Fiber executed in a round-robin manner by a pool of kernel threads. Pooled threads are spun up on demand (to a set upper limit) and terminate when there are no fibers waiting to execute. It should make for a good "millions of threads" baseline scheduler.

Will you reuse std.parallel's task scheduler for that?
I always thought that the std.parallel and Fibers should work together but it wasn't easily possible to adapt Fibers to Tasks.

This wasn't really a natural fit for std.parallelism. There are very few lines of code dedicated to thread management though anyway. The code as-is isn't much bigger than FiberScheduler. The complicated bit will be making scheduling efficient, which I've decided has to happen for MultiScheduler to be actually worth using. It isn't as much of a proof of concept like FiberScheduler.

Reply via email to