The basic principle of Ragnarok is co-routine. And these co-routines are implemented with delimited continuations. Actually, there’s no kernel controlled threads (say, pthread) in Ragnarok. All the tasks are scheduled by an userland scheduler, and the task is nothing but just a special continuation. The difference between it and regular full continuation is that it could be delimited for fine granularity rather than capture the whole stack.
For reaserchers, there is a paper published on ICFP Schemeworkshop2016 to explain the principle and the design of GNU Artanis. Multi-purpose web framework design based on websockets over HTTP Gateway.
(to be continued …)