|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 5/9] libxl: Permit multithreaded event waiting
Ian Campbell writes ("Re: [Xen-devel] [PATCH 5/9] libxl: Permit multithreaded
event waiting"):
> On Fri, 2012-01-13 at 19:25 +0000, Ian Jackson wrote:
> > We also need to move some variables from globals in the ctx to be
> > per-polling-thread.
>
> I don't think this relates to this patch, just that the mention of
> multithreaded waiting brought it to mind. What are the intended
> semantics of two calls to libxl_event_wait with overlapping event masks?
You get each event exactly once, via one of the (possibly several)
suitable libxl_event_wait calls.
> Do we expect that the caller must have called the appropriate evenables
> twice such that both waits get an event (possibly discriminate via the
> predicate)?
No. Well, I guess the caller could do that by divvying up the ev_user
space between the two calls, but it would be a very perverse thing to
do.
> Presumably we want to ensure that one of the waits doesn't sleep for
> ever.
Yes, that's what the wakeup pipe is for.
> How does this interact with events generated via the hooks mechanism? Do
> we always deliver to the explicit wait in preference?
No. As the doc comment for libxl_event_register_callbacks says:
* Arranges that libxl will henceforth call event_occurs for any
* events whose type is set in event_occurs_mask, rather than
* queueing the event for retrieval by libxl_event_check/wait.
* Events whose bit is clear in mask are not affected.
So if you ask for callbacks you don't get the events via wait.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |