Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Stop using Context::StopRequest directly in libsimgrid-java.
[simgrid.git] / src / bindings / java / jmsg.cpp
index 1af0c84..4ecd54e 100644 (file)
@@ -148,18 +148,11 @@ JNIEXPORT void JNICALL JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv * env, jclass
   for (auto const& elm : java_storage_map)
     jstorage_unref(env, elm.second);
 
-  // Don't even report the surviving threads, just to pass the tests...
-  exit(0);
-
   /* Display the status of remaining threads. None should survive, but who knows */
   jclass clsProcess = jxbt_get_class(env, "org/simgrid/msg/Process");
   jmethodID idDebug = jxbt_get_static_jmethod(env, clsProcess, "debugAllThreads", "()V");
   xbt_assert(idDebug != nullptr, "Method Process.debugAllThreads() not found...");
   env->CallStaticVoidMethod(clsProcess, idDebug);
-
-  /* FIXME: don't be of such an EXTREM BRUTALITY to stop the jvm.
-   * Sorry I don't get it working otherwise: some thread survive their own end, and I fail to do anything better */
-  exit(0);
 }
 
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv * env, jclass cls, jstring jplatformFile)
@@ -278,7 +271,7 @@ static void run_jprocess(JNIEnv *env, jobject jprocess)
     XBT_ATTRIB_UNUSED jint error = __java_vm->DetachCurrentThread();
     xbt_assert(error == JNI_OK, "Cannot detach failing thread");
     // simgrid::xbt::Backtrace().display();
-    throw simgrid::kernel::context::Context::StopRequest();
+    simgrid::kernel::context::throw_stoprequest();
   }
 }