X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9c9eaccb6a7670444dfbe5899a696517975ed06b..8bf3d06d49fcd7061f0a08dd4bfed74a7eeae7d0:/src/jmsg.c diff --git a/src/jmsg.c b/src/jmsg.c index 85ba6f5a31..d359c1d24f 100644 --- a/src/jmsg.c +++ b/src/jmsg.c @@ -104,10 +104,9 @@ Java_org_simgrid_msg_MsgNative_processCreate(JNIEnv * env, jclass cls, MSG_process_set_data(process,&process); /* release our reference to the process name (variable name becomes invalid) */ - (*env)->ReleaseStringUTFChars(env, jname, name); + //FIXME : This line should be uncommented but with mac it doesn't work. BIG WARNING + //(*env)->ReleaseStringUTFChars(env, jname, name); - - /* bind the java process instance to the native process */ jprocess_bind(jprocess, process, env); @@ -177,9 +176,6 @@ Java_org_simgrid_msg_MsgNative_processKill(JNIEnv * env, jclass cls, return; } - /* delete the global reference */ - jprocess_delete_global_ref(native_to_java_process(process), env); - /* kill the native process (this wrapper is call by the destructor of the java * process instance) */ @@ -280,9 +276,16 @@ Java_org_simgrid_msg_MsgNative_processSelf(JNIEnv * env, jclass cls) } JNIEXPORT void JNICALL -Java_org_simgrid_msg_MsgNative_processChangeHost(JNIEnv * env, jclass cls, - jobject jhost) +Java_org_simgrid_msg_MsgNative_processMigrate(JNIEnv * env, jclass cls, + jobject jprocess, jobject jhost) { + m_process_t process = jprocess_to_native_process(jprocess, env); + + if (!process) { + jxbt_throw_notbound(env, "process", jprocess); + return; + } + m_host_t host = jhost_get_native(env, jhost); if (!host) { @@ -291,9 +294,8 @@ Java_org_simgrid_msg_MsgNative_processChangeHost(JNIEnv * env, jclass cls, } /* try to change the host of the process */ - MSG_error_t rv = MSG_process_change_host(host); - - jxbt_check_res("MSG_process_change_host()", rv, MSG_OK, + MSG_error_t rv = MSG_process_migrate(process, host); + jxbt_check_res("MSG_process_migrate()", rv, MSG_OK, bprintf("unexpected error , please report this bug")); } @@ -720,13 +722,11 @@ Java_org_simgrid_msg_MsgNative_taskDestroy(JNIEnv * env, jclass cls, /* get the native task */ m_task_t task = jtask_to_native_task(jtask_arg, env); - jobject jtask; if (!task) { jxbt_throw_notbound(env, "task", task); return; } - jtask = (jobject) MSG_task_get_data(task); MSG_error_t rv = MSG_task_destroy(task); @@ -748,7 +748,7 @@ Java_org_simgrid_msg_MsgNative_taskExecute(JNIEnv * env, jclass cls, MSG_error_t rv = MSG_task_execute(task); jxbt_check_res("MSG_task_execute()", rv, - MSG_HOST_FAILURE | MSG_TASK_CANCELLED, + MSG_HOST_FAILURE | MSG_TASK_CANCELED, bprintf("while executing task %s", MSG_task_get_name(task))); } @@ -757,13 +757,6 @@ Java_org_simgrid_msg_MsgNative_taskExecute(JNIEnv * env, jclass cls, * Unsortable functions * ***************************************************************************************/ - -JNIEXPORT jint JNICALL -Java_org_simgrid_msg_Msg_getErrCode(JNIEnv * env, jclass cls) -{ - return (jint) MSG_get_errno(); -} - JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Msg_getClock(JNIEnv * env, jclass cls) { @@ -792,7 +785,6 @@ Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, jobjectArray jargs) jval = (jstring) (*env)->GetObjectArrayElement(env, jargs, index); tmp = (*env)->GetStringUTFChars(env, jval, 0); argv[index + 1] = strdup(tmp); - //argv[index] = strdup(tmp); (*env)->ReleaseStringUTFChars(env, jval, tmp); } @@ -810,7 +802,7 @@ JNIEXPORT void JNICALL JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv * env, jclass cls) { MSG_error_t rv; - int index; //xbt_fifo_item_t item = NULL; + int index; m_host_t *hosts; jobject jhost; @@ -835,13 +827,17 @@ JNIEXPORT void JNICALL } 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)