Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Properly kill the context on HostFailureException
[simgrid.git] / src / kernel / context / ContextBoost.cpp
index a0fb566..e5b557f 100644 (file)
@@ -5,6 +5,7 @@
 
 #include "ContextBoost.hpp"
 #include "context_private.hpp"
 
 #include "ContextBoost.hpp"
 #include "context_private.hpp"
+#include "simgrid/Exception.hpp"
 #include "src/simix/smx_private.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
 #include "src/simix/smx_private.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
@@ -113,10 +114,12 @@ void BoostContext::wrapper(BoostContext::arg_type arg)
 #endif
   try {
     (*context)();
 #endif
   try {
     (*context)();
-    context->Context::stop();
   } catch (StopRequest const&) {
     XBT_DEBUG("Caught a StopRequest");
   } catch (StopRequest const&) {
     XBT_DEBUG("Caught a StopRequest");
+  } catch (simgrid::HostFailureException const&) {
+    XBT_DEBUG("Caught an HostFailureException");
   }
   }
+  context->Context::stop();
   ASAN_ONLY(context->asan_stop_ = true);
   context->suspend();
 }
   ASAN_ONLY(context->asan_stop_ = true);
   context->suspend();
 }