Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
change exception raised if a StopRequest is catched in Host.off()
[simgrid.git] / src / bindings / java / jmsg_host.cpp
index a6ed529..e25ad9d 100644 (file)
@@ -10,6 +10,7 @@
 #include "simgrid/s4u/Host.hpp"
 #include "simgrid/s4u/Storage.hpp"
 
+#include "JavaContext.hpp"
 #include "jmsg.hpp"
 #include "jmsg_host.h"
 #include "jmsg_storage.h"
@@ -141,7 +142,8 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Host_on(JNIEnv *env, jobject jhost)
 
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Host_off(JNIEnv *env, jobject jhost) {
   msg_host_t host = jhost_get_native(env, jhost);
-  MSG_host_off(host);
+  if (not simgrid::kernel::context::StopRequest::try_n_catch([host]() { MSG_host_off(host); }))
+    jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", "Process killed");
 }
 
 JNIEXPORT jint JNICALL Java_org_simgrid_msg_Host_getCount(JNIEnv * env, jclass cls) {
@@ -414,4 +416,4 @@ JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Host_getAvgLoad (JNIEnv *env, job
   }
 
   return MSG_host_get_avg_load(host);
-}
\ No newline at end of file
+}