public final static native void init(String[]args);
/**
- * Run the MSG simulation, and cleanup everything afterward.
+ * Run the MSG simulation.
*
- * If you want to chain simulations in the same process, you
- * should call again createEnvironment and deployApplication afterward.
+ * The simulation is not cleaned afterward (see
+ * {@link #clean()} if you really insist on cleaning the C side), so you can freely
+ * retrieve the informations that you want from the simulation. In particular, retrieving the status
+ * of a process or the current date is perfectly ok.
*
- * @see MSG_run, MSG_clean
+ * @see MSG_run
*/
public final static native void run() ;
+
+ /**
+ * Cleanup the MSG simulation.
+ *
+ * This function is only useful if you want to chain the simulations within
+ * the same environment. But actually, it's not sure at all that cleaning the
+ * JVM is faster than restarting a new one, so it's probable that using this
+ * function is not a brilliant idea. Do so at own risk.
+ *
+ * @see MSG_clean
+ */
+ public final static native void clean();
+
/**
* The native implemented method to create the environment of the simulation.
}
XBT_INFO("Clean native world");
- /* cleanup native stuff */
- rv = MSG_OK != MSG_clean();
+}
+JNIEXPORT void JNICALL
+ JNICALL Java_org_simgrid_msg_Msg_clean(JNIEnv * env, jclass cls)
+{
+ /* cleanup native stuff. Calling it is ... useless since leaking memory at the end of the simulation is a non-issue */
+ MSG_error_t rv = MSG_OK != MSG_clean();
jxbt_check_res("MSG_clean()", rv, MSG_OK,
bprintf
("unexpected error : MSG_clean() failed .. please report this bug "));
}
-
+
JNIEXPORT jint JNICALL
Java_org_simgrid_msg_MsgNative_processKillAll(JNIEnv * env, jclass cls,
jint jresetPID)
JNIEXPORT void JNICALL
JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv * env, jclass cls);
+JNIEXPORT void JNICALL
+ JNICALL Java_org_simgrid_msg_Msg_clean(JNIEnv * env, jclass cls);
JNIEXPORT void JNICALL
Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, jobjectArray jargs);