From 1a066c1014c46f1b889b20e3f5e284701a3b1c15 Mon Sep 17 00:00:00 2001 From: Samuel Lepetit Date: Thu, 5 Jul 2012 12:04:38 +0200 Subject: [PATCH] Add Process.setAutoRestart --- org/simgrid/msg/Process.java | 4 ++++ src/jmsg_process.c | 20 ++++++++++++++++++++ src/jmsg_process.h | 7 +++++++ 3 files changed, 31 insertions(+) diff --git a/org/simgrid/msg/Process.java b/org/simgrid/msg/Process.java index caccfb12b6..c2f9dcd7d9 100644 --- a/org/simgrid/msg/Process.java +++ b/org/simgrid/msg/Process.java @@ -239,6 +239,10 @@ public abstract class Process implements Runnable { public void pause() { suspend(); } + /** + * Sets the "auto-restart" flag of the process. + */ + public native void setAutoRestart(boolean autoRestart); /** * Restarts the process from the beginning */ diff --git a/src/jmsg_process.c b/src/jmsg_process.c index 8b06e36f4f..a071d98831 100644 --- a/src/jmsg_process.c +++ b/src/jmsg_process.c @@ -228,6 +228,7 @@ Java_org_simgrid_msg_Process_suspend(JNIEnv * env, bprintf("unexpected error , please report this bug")); } + JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume(JNIEnv * env, jobject jprocess) @@ -245,6 +246,25 @@ Java_org_simgrid_msg_Process_resume(JNIEnv * env, jxbt_check_res("MSG_process_resume()", rv, 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_process(jprocess, env); + xbt_ex_t e; + + int auto_restart = jauto_restart == JNI_TRUE ? 1 : 0; + + if (!process) { + jxbt_throw_notbound(env, "process", jprocess); + return; + } + + TRY { + MSG_process_auto_restart_set(process,auto_restart); + } + CATCH (e) { + xbt_ex_free(e); + } +} JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart (JNIEnv *env, jobject jprocess) { msg_process_t process = jprocess_to_native_process(jprocess, env); diff --git a/src/jmsg_process.h b/src/jmsg_process.h index 06ed276cb8..9dc05d5b1c 100644 --- a/src/jmsg_process.h +++ b/src/jmsg_process.h @@ -195,6 +195,13 @@ Java_org_simgrid_msg_Process_suspend(JNIEnv * env, */ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume (JNIEnv *, jobject); +/* + * Class org_simgrid_msg_Process + * Method setAutoRestart + * Signature (Lorg/simgrid/msg/Process;Z)V + */ +JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_setAutoRestart + (JNIEnv *, jobject, jboolean); /* * Class org_simgrid_msg_Process * Method restart -- 2.20.1