2 ms·
>This uses coroutines so there is no preemption. Right, I meant cooperative yielding (which fibers are), but accidentally called it the exact opposite. Whoops.
by Arnavion 4y ago
>This uses coroutines so there is no preemption.
Right, I meant cooperative yielding (which fibers are), but accidentally called it the exact opposite. Whoops.
>I don't see a mention of what the actual coroutine mechanism is, and I don't see any mention of Boost or C++20 coroutines
It's boost coroutines. The /uboost_coro directory is a vendored copy. It's used in /core/src/engine/coro/pool.hpp
- throwaway81523 4y agoThanks. I have been wondering for a while if Seastar might someday switch to this approach. I also wonder how the overall performance compares with current versions of Go and Goroutines. I don't like Go much from a pure language perspective, but I do like having a garbage collected runtime. I last heard you pay around 2x overhead for it, which is not that bad for most purposes.