Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of github.com:simgrid/simgrid
[simgrid.git] / src / bindings / java / jmsg_process.cpp
index 2ed2a92..8fcbe02 100644 (file)
@@ -77,8 +77,8 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_create(JNIEnv* env, jobject
   msg_process_t process = MSG_process_create_from_stdfunc(
       name, [jprocess]() -> void { simgrid::kernel::context::java_main_jprocess(jprocess); },
       /*data*/ nullptr, jhost_get_native(env, jhost), /* properties*/ nullptr);
-
   env->ReleaseStringUTFChars(jname, name);
+
   /* bind the java process instance to the native process */
   jprocess_bind(jprocess, process, env);
 
@@ -100,14 +100,14 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID(JNIEnv * env, jcl
 {
   msg_process_t process = MSG_process_from_PID(pid);
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_process_not_found(env, bprintf("PID = %d",static_cast<int>(pid)));
     return nullptr;
   }
 
   jobject jprocess = jprocess_from_native(process);
 
-  if (!jprocess) {
+  if (not jprocess) {
     jxbt_throw_jni(env, "get process failed");
     return nullptr;
   }
@@ -118,16 +118,15 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID(JNIEnv * env, jcl
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_getProperty(JNIEnv *env, jobject jprocess, jobject jname) {
   msg_process_t process = jprocess_to_native(jprocess, env);
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return nullptr;
   }
   const char *name = env->GetStringUTFChars((jstring)jname, 0);
 
   const char *property = MSG_process_get_property_value(process, name);
-  if (!property) {
+  if (not property)
     return nullptr;
-  }
 
   jobject jproperty = env->NewStringUTF(property);
 
@@ -138,17 +137,8 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_getProperty(JNIEnv *env,
 
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_getCurrentProcess(JNIEnv * env, jclass cls)
 {
-  msg_process_t process = MSG_process_self();
-  jobject jprocess;
-
-  if (!process) {
-    jxbt_throw_jni(env, xbt_strdup("MSG_process_self() failed"));
-    return nullptr;
-  }
-
-  jprocess = jprocess_from_native(process);
-
-  if (!jprocess)
+  jobject jprocess = jprocess_from_native(MSG_process_self());
+  if (not jprocess)
     jxbt_throw_jni(env, xbt_strdup("SIMIX_process_get_jprocess() failed"));
 
   return jprocess;
@@ -158,7 +148,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_suspend(JNIEnv * env, jobjec
 {
   msg_process_t process = jprocess_to_native(jprocess, env);
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
@@ -173,41 +163,33 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume(JNIEnv * env, jobject
 {
   msg_process_t process = jprocess_to_native(jprocess, env);
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
 
   /* try to resume the process */
-  msg_error_t rv = MSG_process_resume(process);
-
-  jxbt_check_res("MSG_process_resume()", rv, MSG_OK, bprintf("unexpected error , please report this bug"));
+  msg_error_t res = MSG_process_resume(process);
+  jxbt_check_res("MSG_process_resume()", res, MSG_OK, bprintf("unexpected error , please report this bug"));
 }
+
 JNIEXPORT void
 JNICALL Java_org_simgrid_msg_Process_setAutoRestart (JNIEnv *env, jobject jprocess, jboolean jauto_restart) {
-  msg_process_t process = jprocess_to_native(jprocess, env);
-  xbt_ex_t e;
-
-  int auto_restart = jauto_restart == JNI_TRUE ? 1 : 0;
 
-  if (!process) {
+  msg_process_t process = jprocess_to_native(jprocess, env);
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
 
-  try {
-    MSG_process_auto_restart_set(process,auto_restart);
-  }
-  catch (xbt_ex& e) {
-    // Nothing to do
-  }
+  MSG_process_auto_restart_set(process, (jauto_restart == JNI_TRUE));
 }
 
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart (JNIEnv *env, jobject jprocess) {
   msg_process_t process = jprocess_to_native(jprocess, env);
   xbt_ex_t e;
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
@@ -224,7 +206,7 @@ JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Process_isSuspended(JNIEnv * env
 {
   msg_process_t process = jprocess_to_native(jprocess, env);
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return 0;
   }
@@ -268,15 +250,16 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_kill(JNIEnv * env, jobject j
 {
   /* get the native instances from the java ones */
   msg_process_t process = jprocess_to_native(jprocess, env);
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
-
   try {
     MSG_process_kill(process);
   } catch (xbt_ex& ex) {
-    XBT_VERB("This process just killed itself.");
+    XBT_VERB("Process %s just committed a suicide", MSG_process_get_name(process));
+    xbt_assert(process == MSG_process_self(),
+               "Killing a process should not raise an exception if it's not a suicide. Please report that bug.");
   }
 }
 
@@ -284,14 +267,14 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_migrate(JNIEnv * env, jobjec
 {
   msg_process_t process = jprocess_to_native(jprocess, env);
 
-  if (!process) {
+  if (not process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
 
   msg_host_t host = jhost_get_native(env, jhost);
 
-  if (!host) {
+  if (not host) {
     jxbt_throw_notbound(env, "host", jhost);
     return;
   }