Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge scm.gforge.inria.fr:/gitroot/simgrid/simgrid-java
authorSamuel Lepetit <samuel.lepetit@inria.fr>
Tue, 12 Jun 2012 13:11:11 +0000 (15:11 +0200)
committerSamuel Lepetit <samuel.lepetit@inria.fr>
Tue, 12 Jun 2012 13:11:11 +0000 (15:11 +0200)
1  2 
CMakeLists.txt
org/simgrid/msg/Process.java
src/jmsg_process.c
src/jmsg_process.h

diff --combined CMakeLists.txt
@@@ -72,8 -72,6 +72,8 @@@ include(FindJavaSG.cmake
  # 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
@@@ -120,13 -118,6 +120,6 @@@ set(JAVA_EXAMPLE
        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
@@@ -179,17 -179,17 +181,17 @@@ ${CMAKE_HOME_DIRECTORY}/FindSimGrid.cma
  )
  
  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
@@@ -262,12 -262,13 +264,13 @@@ add_custom_command
        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    
@@@ -297,19 -298,20 +300,20 @@@ INCLUDE(CTest
  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     #
@@@ -230,16 -230,31 +230,31 @@@ public abstract class Process implement
        /**
         * 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
         */
diff --combined src/jmsg_process.c
  #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;
@@@ -216,7 -206,7 +216,7 @@@ Java_org_simgrid_msg_Process_currentPro
  }
  
  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);
diff --combined src/jmsg_process.h
@@@ -22,9 -22,6 +22,9 @@@ jfieldID jprocess_field_Process_name
  jfieldID jprocess_field_Process_pid;
  jfieldID jprocess_field_Process_ppid;
  
 +JNIEXPORT void JNICALL
 +Java_org_simgrid_msg_Process_exit(JNIEnv *env, jobject);
 +
  
  jobject native_to_java_process(m_process_t process);
  
@@@ -182,18 -179,18 +182,18 @@@ JNIEXPORT jobject JNICALL Java_org_simg
      (JNIEnv *, jclass);
  /*
   * Class              org_simgrid_msg_Process
-  * Method             pause
+  * Method             suspend
   * Signature  (Lorg/simgrid/msg/Process;)V
   */
  JNIEXPORT void JNICALL
- Java_org_simgrid_msg_Process_pause(JNIEnv * env,
+ Java_org_simgrid_msg_Process_suspend(JNIEnv * env,
                                            jobject jprocess);
  /*
   * Class              org_simgrid_msg_Process
-  * Method             restart
+  * Method             resume
   * Signature  (Lorg/simgrid/msg/Process;)V
   */
- JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart
+ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume
      (JNIEnv *, jobject);
  /*
   * Class              org_simgrid_msg_Process