All right, thank you. So it's basically the same as any other non-preemptive multitasking design.
If the event loop is part of the Node language/runtime, I can see the case for making it preemptive.
If the event loop is part of the Node language/runtime, I can see the case for making it preemptive.
If your function blocks, for example, by performing a wait on something without yielding, then nothing else gets computed because of the wait, but the event queue is occupied since the function has not yielded. This breaks the cooperative part of the cooperative multithreading mechanism of Node.