summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Vesely <[email protected]>2018-07-17 02:05:02 -0400
committerJan Vesely <[email protected]>2018-07-17 21:04:15 -0400
commit866b25fd014cc50ff2bd1a56d696f4c068e46965 (patch)
tree8eb7f9e67210e451d5bfd4e1dffba6e8acbce5e7
parente105b0ca306eb826c7b5cbc8a965e9f774d0d5b7 (diff)
clover: Catch errors from executing event action
Abort all dependent events. v2: Abort the current event as well. CC: <[email protected]> Signed-off-by: Jan Vesely <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
-rw-r--r--src/gallium/state_trackers/clover/core/event.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/clover/core/event.cpp b/src/gallium/state_trackers/clover/core/event.cpp
index cd5d786604d..b7eb33dbfc8 100644
--- a/src/gallium/state_trackers/clover/core/event.cpp
+++ b/src/gallium/state_trackers/clover/core/event.cpp
@@ -49,12 +49,14 @@ event::trigger_self() {
}
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());
}
std::vector<intrusive_ref<event>>