As for: > For example, is the scheduler run-to-suspend? > And non-preemptive behaviour only appears here in the thread. It isn’t > mentioned in the RFC itself.
There is no direct statement in the RFC that cooperative multitasking is implemented. I think this text was removed, and that needs to be fixed. But on the other hand, there is a clear description of the contract expressed in different words: RFC: "A coroutine can stop itself passing control to the scheduler. However, it cannot be stopped externally." which essentially means the same thing. This is exactly what constitutes the public contract between PHP and the developer. I included a list of I/O functions for demonstration purposes, but this list is not part of the RFC. It is part of the implementation. This means that not all I/O functions can or should be adapted immediately.
