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?


Apart from these concerns, It's also not clear to me that moving tasks between
threads is necessarily an improvement. There are certainly cases where that
leads to a better distribution across the cores, but in most scenarios the
number of concurrent tasks should be high enough to keep all cores busy anyhow.
There are also additional costs for moving fibers (synchronization, cache 
misses).

I agree that moving between threads can wait.

Reply via email to