MsgNative.processMigrate(process, host);
process.host = null;
}
+ /**
+ * Makes the current process sleep until millis millisecondes have elapsed.
+ * You should note that unlike "waitFor" which takes seconds, this method takes milliseconds.
+ * FIXME: Not optimal, maybe we should have two native functions.
+ * @param millis the length of time to sleep in milliseconds.
+ */
+ public static void sleep(long millis) {
+ sleep(millis,0);
+ }
+ /**
+ * Makes the current process sleep until millis milliseconds and nanos nanoseconds
+ * have elapsed.
+ * You should note that unlike "waitFor" which takes seconds, this method takes milliseconds and nanoseconds.
+ * Overloads Thread.sleep.
+ * @param millis the length of time to sleep in milliseconds.
+ * @param nanos additionnal nanoseconds to sleep.
+ */
+ public native static void sleep(long millis, int nanos);
/**
* Makes the current process sleep until time seconds have elapsed.
* @param seconds The time the current process must sleep.
/* 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)
*/
JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Process_isSuspended
(JNIEnv *, jobject);
+/*
+ * Class org_simgrid_msg_Process
+ * Method sleep
+ * Signature (DI)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_sleep
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class org_simgrid_msg_Process