On Fri, 06 Dec 2013 16:34:17 -0500, Etienne Cimon wrote:

If you need to run routines that take a lot of CPU cycles, you can call
yield() every now and then to make sure other requests aren't left out
while this operation runs.

Ok, that's pretty much what I've thought.

Only threads are exposed to
data races, but by default, vibe.d runs on one thread only.

I'm not really familiar with web server development, but isn't it sub-optimal? I would expect that the "main loop" would have a pool of threads (with capacity = number of CPU cores), also it'll have some queue of fibers and it will run assigning those to free threads. If we're running on a single thread - we're not utilizing more than 1 core. Is my understanding correct? If so, what is the proposed way to utilize more cores?