On Tue, 2018-07-17 at 14:17 -0700, Francisco Jerez wrote: > Jan Vesely <[email protected]> writes: > > > Abort all dependent events. > > Signed-off-by: Jan Vesely <[email protected]> > > --- > > src/gallium/state_trackers/clover/core/event.cpp | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/src/gallium/state_trackers/clover/core/event.cpp > > b/src/gallium/state_trackers/clover/core/event.cpp > > index cd5d786604..ed2b6ebdb8 100644 > > --- a/src/gallium/state_trackers/clover/core/event.cpp > > +++ b/src/gallium/state_trackers/clover/core/event.cpp > > @@ -51,7 +51,12 @@ event::trigger_self() { > > void > > event::trigger() { > > if (wait_count() == 1) > > - action_ok(*this); > > + try { > > + action_ok(*this); > > + } catch (error &e) { > > + for (event &ev : abort_self(e.get())) > > + ev.abort(e.get()); > > + } > > > > Any reason not to do it like: > > > try { > > if (wait_count() == 1) > > action_ok(*this); > > } catch (error &e) { > > abort(e.get()); > > } > > That seems slightly simpler and it should make sure that the abort > action of the failing event is executed as well.
sure. It wasn't clear to me if it's ok to execute both action_ok and
action_fail for the same event. My understanding was that exactly one
of them is called.
I can even do:
void
-event::trigger() {
+event::trigger() try {
if (wait_count() == 1)
action_ok(*this);
for (event &ev : trigger_self())
ev.trigger();
+} catch (error &e) {
+ abort(e.get())
}
Jan
>
> Thanks.
>
> > for (event &ev : trigger_self())
> > ev.trigger();
> > --
> > 2.16.4
--
Jan Vesely <[email protected]>
signature.asc
Description: This is a digitally signed message part
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
