[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 17/29] libxl: cancellation: Provide public ao cancellation API
Ian Campbell writes ("Re: [Xen-devel] [PATCH 17/29] libxl: cancellation: Provide public ao cancellation API"): > On Tue, 2015-02-10 at 20:10 +0000, Ian Jackson wrote: > > + /* > > + * For nested aos: > > + * Semantically, cancellation affects the whole tree of aos, > > + * not just the parent. > > + * libxl__ao_cancellable.ao refers to the child, so > > + * that the child callback sees the right ao. (After all, > > + * it was code dealing with the child that set .ao.) > > + * But, the cancellable is recorded on the "cancellables" list > > + * for the ultimate root ao, so that every possible child > > + * cancellation occurs as a result of the cancellation of the > > + * parent. > > + * We set ao->cancelling only in the root. > > + */ > > WRT this, given a tree of ao's, which ones need to be cancellable for a > cancellation to succeed? I would assume all of them do, or else the > cancellation can only occur if/when the non-cancellable ones happen to > end? It depends what you mean by `succeed'. libxl_ao_cancel reports success if it did something. That is, if anyone was listening. For this purpose, with a tree of ao's, it is sufficient for any one of the children to have registered a cancellable. > Do we(/are we going to) take steps to stop new non-cancellable ao's to > the tree once the root is cancelled? Yes. Individual callback setups, and operations, can check by calling libxl__ao_cancelling. Normally this is done by libxl__ao_cancellable_register: it is not possible to register a new cancellable for an ao which we are supposed to be cancelling. This affects, for example, libxl__ev_time_register_*. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |