I've been thinking about this as well. My scope hasn't been universal, as for the moment my focus is on the built-on-darwin OSen.
In my case, I think it's pretty easy to allow the native run loop handle fd events; it's just a matter of re-registering the kqueue with the runloop after it triggers an event.
I'm less sure about the other aspects of the backend, such as timed events. The run loop has a timer facility, which I think can be adapted to handle call_outs in a pretty straightforward manner. What else do I need to think about if a call to Pike.Backend->`()() is no longer being made?
Bill
Then it's another matter if we somehow can make it easier to do the reverse, i.e. to hook in the pike backend in a foreign one. That'd mean a way to query for all the pike fd's, including the wakeup pipe, I guess. Or if it's possible to solve a bit more elegantly when something like kqueue is used.