diff options
Diffstat (limited to 'src/runtime/CPP/CPPScheduler.cpp')
-rw-r--r-- | src/runtime/CPP/CPPScheduler.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/runtime/CPP/CPPScheduler.cpp b/src/runtime/CPP/CPPScheduler.cpp index 2b179fd5ff..5916bb46fd 100644 --- a/src/runtime/CPP/CPPScheduler.cpp +++ b/src/runtime/CPP/CPPScheduler.cpp @@ -190,15 +190,19 @@ void CPPScheduler::Thread::worker_thread() return; } +#ifndef ARM_COMPUTE_EXCEPTIONS_DISABLED try { +#endif /* ARM_COMPUTE_EXCEPTIONS_ENABLED */ process_workloads(*_workloads, *_feeder, _info); + +#ifndef ARM_COMPUTE_EXCEPTIONS_DISABLED } catch(...) { _current_exception = std::current_exception(); } - +#endif /* ARM_COMPUTE_EXCEPTIONS_DISABLED */ _job_complete = true; lock.unlock(); _cv.notify_one(); @@ -250,18 +254,21 @@ void CPPScheduler::run_workloads(std::vector<IScheduler::Workload> &workloads) info.thread_id = t; process_workloads(workloads, feeder, info); - +#ifndef ARM_COMPUTE_EXCEPTIONS_DISABLED try { +#endif /* ARM_COMPUTE_EXCEPTIONS_DISABLED */ for(auto &thread : _threads) { thread.wait(); } +#ifndef ARM_COMPUTE_EXCEPTIONS_DISABLED } catch(const std::system_error &e) { std::cerr << "Caught system_error with code " << e.code() << " meaning " << e.what() << '\n'; } +#endif /* ARM_COMPUTE_EXCEPTIONS_DISABLED */ } #endif /* DOXYGEN_SKIP_THIS */ |