[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/2] libxl: fix stale timeout event callback race
Jim Fehlig writes ("Re: [Xen-devel] [PATCH 2/2] libxl: fix stale timeout event callback race"): > Ian Jackson wrote: > > Well your patch is only correct when used with the new libxl, with my > > patches. > > Hmm, it is not clear to me how to make the libxl driver work correctly > with libxl pre and post your patches :-/. This should be straightforward I think, except for the deregistration race bug which is unavoidable with the old libxl. Simply correctly implementing both the deregistration callback and the modification callback ought to do it. > >> @@ -184,6 +184,8 @@ static void libxlTimerCallback(int timer > >> ATTRIBUTE_UNUSED, void *timer_v) > >> { > >> struct libxlOSEventHookTimerInfo *timer_info = timer_v; > >> > >> + virEventRemoveTimeout(timer_info->id); > >> + timer_info->id = -1; > >> > > > > I don't understand why you need this. Doesn't libvirt remove timers > > when they fire ? If it doesn't, do they otherwise not keep reoccurring ? > > No, timers are not removed when they fire. And they are continuous, so > will keep firing at each timeout. They can be disabled by setting the > timeout to -1, and can be set to fire on each iteration of the event > loop by setting the timeout to 0. But they must be explicitly removed > with virEventRemoveTimeout when no longer needed. Right. Well then yes you need to call virEventRemoveTimeout here. But that applies to both old and new libxl. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |