# Declare our package content #
###############################
set(JMSG_C_SRC
+ src/smx_context_cojava.h
+ src/smx_context_cojava.c
src/smx_context_java.h
src/smx_context_java.c
src/jxbt_utilities.c
examples/async/Forwarder.java
examples/async/Master.java
examples/async/Slave.java
- examples/startKillTime/Slave.java
- examples/basic/FinalizeTask.java
- examples/basic/Forwarder.java
- examples/basic/Master.java
- examples/basic/BasicTest.java
- examples/basic/Slave.java
-
examples/bittorrent/Bittorrent.java
examples/bittorrent/Common.java
examples/bittorrent/Connection.java
examples/commTime/Master.java
examples/commTime/Slave.java
examples/commTime/CommTimeTest.java
+ examples/masterslave/FinalizeTask.java
+ examples/masterslave/Forwarder.java
+ examples/masterslave/Master.java
+ examples/masterslave/Masterslave.java
+ examples/masterslave/Slave.java
examples/master_slave_bypass/Master.java
examples/master_slave_bypass/MsBypass.java
examples/master_slave_bypass/Slave.java
examples/master_slave_kill/MsKill.java
examples/master_slave_kill/Slave.java
examples/master_slave_kill/FinalizeTask.java
+ examples/migration/Emigrant.java
+ examples/migration/Migration.java
+ examples/migration/Policeman.java
examples/mutualExclusion/centralized/MutexCentral.java
examples/mutualExclusion/centralized/GrantTask.java
examples/mutualExclusion/centralized/Coordinator.java
examples/pingPong/Receiver.java
examples/pingPong/PingPongTest.java
examples/startKillTime/Master.java
+ examples/startKillTime/Slave.java
examples/startKillTime/StartKillTime.java
examples/suspend/DreamMaster.java
examples/suspend/LazyGuy.java
)
set(XML_FILES
- examples/commTime/commTimeDeployment.xml
- examples/mutualExclusion/ring3.xml
- examples/mutualExclusion/centralized/mutex_centralized_deployment.xml
examples/platform.xml
- examples/pingPong/pingPongDeployment.xml
- examples/basic/basicDeployment.xml
- examples/basic/deploy.xml
- examples/master_slave_bypass/platform.xml
- examples/master_slave_kill/platform.xml
examples/async/asyncDeployment.xml
examples/bittorrent/bittorrent.xml
+ examples/commTime/commTimeDeployment.xml
+ examples/masterslave/masterslaveDeployment.xml
+ examples/masterslave/deploy.xml
+ examples/master_slave_bypass/platform.xml
+ examples/master_slave_kill/platform.xml
+ examples/mutualExclusion/ring3.xml
+ examples/mutualExclusion/centralized/mutex_centralized_deployment.xml
+ examples/pingPong/pingPongDeployment.xml
)
set(source_to_pack
OUTPUT ${JAVA_EXAMPLES_CLASS}
DEPENDS ${JAVA_EXAMPLES}
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/async/*.java
- COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java
- COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/*.java
+ COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/chord/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/commTime/*.java
+ COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/masterslave/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/*.java
+ COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/migration/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/priority/*.java
ENABLE_TESTING()
ADD_TEST(async ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/async/async.tesh)
- ADD_TEST(basic ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/basic/basic.tesh)
ADD_TEST(bittorrent ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.tesh)
ADD_TEST(bypass ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/bypass.tesh)
ADD_TEST(commTime ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/commTime/commtime.tesh)
ADD_TEST(chord ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.tesh)
ADD_TEST(kill ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh)
+ ADD_TEST(masterslave ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/masterslave/masterslave.tesh)
+ ADD_TEST(migration ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/migration/migration.tesh)
ADD_TEST(mutualExclusion ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.tesh)
ADD_TEST(pingPong ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingpong.tesh)
ADD_TEST(priority ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/priority/priority.tesh)
ADD_TEST(startKillTime ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh)
ADD_TEST(suspend ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspend.tesh)
#Don't forget to put new test in this list!!!
- set(test_list async basic bittorrent bypass chord commTime kill mutualExclusion pingPong priority startKillTime)
+ set(test_list async bittorrent bypass chord commTime kill masterslave migration mutualExclusion pingPong priority startKillTime)
##########################################
# Set the DYLD_LIBRARY_PATH for mac #
/**
* Suspends the process by suspending the task on which it was
* waiting for the completion.
- *
*/
- public native void pause();
+ public native void suspend();
+ /**
+ * Suspends the process by suspending the task on which it was
+ * waiting for the completion.
+ * DEPRECATED: use suspend instead.
+ */
+ @Deprecated
+ public void pause() {
+ suspend();
+ }
/**
* Resumes a suspended process by resuming the task on which it was
* waiting for the completion.
- *
- *
+ * DEPRECATED: use resume instead.
*/
- public native void restart();
+ @Deprecated
+ public void restart() {
+ resume();
+ }
+ /**
+ * Resumes a suspended process by resuming the task on which it was
+ * waiting for the completion.
+ */
+ public native void resume();
/**
* Tests if a process is suspended.
*
* @param host The host where to migrate the process.
*
*/
- public native static void migrate(Process process, Host host);
+ public native void migrate(Host host);
/**
* Makes the current process sleep until millis millisecondes have elapsed.
* You should note that unlike "waitFor" which takes seconds, this method takes milliseconds.
catch(ProcessKilledError pk) {
}
+ exit();
}
/**
*/
public abstract void main(String[]args) throws MsgException;
-
+ public native void exit();
/**
* Class initializer, to initialize various JNI stuff
*/
#include "jmsg_host.h"
#include "jxbt_utilities.h"
#include "smx_context_java.h"
+#include "smx_context_cojava.h"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(jmsg);
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_Process_exit(JNIEnv *env, jobject jprocess) {
+ if (smx_factory_initializer_to_use == SIMIX_ctx_cojava_factory_init) {
+ m_process_t process = jprocess_to_native_process(jprocess, env);
+ smx_context_t context = MSG_process_get_smx_ctx(process);
+ smx_ctx_cojava_stop(context);
+ }
+}
+
jobject native_to_java_process(m_process_t process)
{
return ((smx_ctx_java_t)MSG_process_get_smx_ctx(process))->jprocess;
}
JNIEXPORT void JNICALL
- Java_org_simgrid_msg_Process_pause(JNIEnv * env,
+ Java_org_simgrid_msg_Process_suspend(JNIEnv * env,
jobject jprocess)
{
m_process_t process = jprocess_to_native_process(jprocess, env);
}
JNIEXPORT void JNICALL
- Java_org_simgrid_msg_Process_restart(JNIEnv * env,
+ Java_org_simgrid_msg_Process_resume(JNIEnv * env,
jobject jprocess)
{
m_process_t process = jprocess_to_native_process(jprocess, env);