#endif
}
-Context* ContextFactory::attach(void_pfn_smxprocess_t cleanup_func, smx_actor_t process)
+Context* ContextFactory::attach(void_pfn_smxprocess_t, smx_actor_t)
{
xbt_die("Cannot attach with this ContextFactory.\n"
"Try using --cfg=contexts/factory:thread instead.\n");
}
-Context* ContextFactory::create_maestro(std::function<void()> code, smx_actor_t process)
+Context* ContextFactory::create_maestro(std::function<void()>, smx_actor_t)
{
xbt_die("Cannot create_maestro with this ContextFactory.\n"
"Try using --cfg=contexts/factory:thread instead.\n");
AttachContext::~AttachContext() = default;
+void throw_stoprequest()
+{
+ throw Context::StopRequest();
+}
+
+bool try_n_catch_stoprequest(std::function<void(void)> try_block)
+{
+ bool res;
+ try {
+ try_block();
+ res = true;
+ } catch (Context::StopRequest const&) {
+ XBT_DEBUG("Caught a StopRequest");
+ res = false;
+ }
+ return res;
+}
}}}
/** @brief Executes all the processes to run (in parallel if possible). */