X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/601b0b84937fb065edd43e83f755e2eae4a1de0e..7b2435d30a045a0c8c292c0fd98a2a2379a40fb3:/src/jmsg_process.c diff --git a/src/jmsg_process.c b/src/jmsg_process.c index f0fa160ba6..cba0649cf9 100644 --- a/src/jmsg_process.c +++ b/src/jmsg_process.c @@ -15,9 +15,9 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(jmsg); +static jfieldID jprocess_field_Process_host; static jfieldID jprocess_field_Process_pid; static jfieldID jprocess_field_Process_ppid; -static jfieldID jprocess_field_Process_host; jobject native_to_java_process(m_process_t process) { @@ -232,6 +232,11 @@ Java_org_simgrid_msg_Process_nativeInit(JNIEnv *env, jclass cls) { jprocess_field_Process_pid = jxbt_get_sfield(env, "org/simgrid/msg/Process", "pid", "I"); jprocess_field_Process_ppid = jxbt_get_sfield(env, "org/simgrid/msg/Process", "ppid", "I"); jprocess_field_Process_host = jxbt_get_jfield(env, jprocess_class_Process, "host", "Lorg/simgrid/msg/Host;"); + + if (!jprocess_class_Process || !jprocess_field_Process_pid || + !jprocess_field_Process_ppid || !jprocess_field_Process_host) { + jxbt_throw_native(env,bprintf("Can't find some fields in Java class. You should report this bug.")); + } } JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_create(JNIEnv * env, @@ -404,6 +409,16 @@ Java_org_simgrid_msg_Process_isSuspended(JNIEnv * env, /* true is the process is suspended, false otherwise */ return (jboolean) MSG_process_is_suspended(process); } + +JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_sleep + (JNIEnv *env, jclass cls, jlong jmillis, jint jnanos) { + + double time = jmillis / 1000 + jnanos / 1000; + + MSG_error_t rv = MSG_process_sleep(time); + jxbt_check_res("MSG_process_sleep()", rv, MSG_OK, + bprintf("unexpected error , please report this bug")); +} JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_waitFor(JNIEnv * env, jobject jprocess, jdouble jseconds)