Jeremie, other than having some different back-ends available (e.g., glib main loop), how different are the approaches to backend management between Async and Lwt?
The backend interfaces are slightly different, but we just need a bit of glue in the middle. Essentially the difference is that with Lwt you provide one callback per fd and watch (read or write), while with Async you have a global callback.
Right now what we need to change in Async to make this work is:
- allow to provide a backend programmatically; right now you can only choose between the predefined epoll and select ones
- make the scheduler ignore fds returned by the backend that are not handled by async