|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2-resend 22/30] libxl: ocaml: event management [and 1 more messages]
> I replied to v2 of this as follows:
>
> Ian Jackson writes ("Re: [Xen-devel] [PATCH v2-resend 22/30] libxl: ocaml:
> event management"):
> > Can you explain in a bit more detail how you expect to use this ?
> >
> > I'm very surprised that apparently the right interface to provide is
> > one which exposes the poll-based event loop machinery to ocaml.
> > Surely it would be better to plumb that in at a lower level.
>
> But I haven't had an answer.
Sorry, I had missed this... :(
> I think that whether this is the right approach depends on how event loops
> are traditionally done in ocaml.
Having bindings to the low-level functions libxl_osevent_register_hooks and
related, allows us to run an event loop in OCaml; either one we write
ourselves, or one that is available elsewhere.
We are currently running a straightforward, custom event loop in xenopsd. It
simply maintains a list of fds and timeouts, and runs poll in a loop, as you
would expect (see
https://github.com/xapi-project/xenopsd/blob/master/xl/xenlight_events.ml for
the full code).
The Lwt cooperative threads library (http://ocsigen.org/lwt/), which is quite
popular these days, has an event loop that can be easily extended to poll any
additional fds that we get from libxl. Lwt provides a "lightweight" threading
model, which does not let you run any other (POSIX) threads in your
application, and therefore excludes an event loop implemented in the C
bindings. We have not ported xenopsd to use Lwt yet, but there were plans to do
so in future.
Exposing the low-level event hooks in OCaml gives us the choice to implement
either of the above options.
> I'm afraid, though, that in the absence of an explanation:
>
> Nacked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
>
> Thanks,
> Ian.
>
> PS Does anyone here know how Mirage handles event loops ?
I believe Mirage uses Lwt, and therefore probably uses its event loop.
Cheers,
Rob
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |