)
set(JAVA_EXAMPLES
+
examples/mutualExclusion/centralized/MutexCentral.java
examples/mutualExclusion/centralized/GrantTask.java
examples/mutualExclusion/centralized/Coordinator.java
examples/async/Forwarder.java
examples/async/Master.java
examples/async/Slave.java
+ examples/startKillTime/Slave.java
+ examples/startKillTime/Master.java
+ examples/startKillTime/StartKillTime.java
)
set(CMAKE_SRC
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/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/startKillTime/*.java
)
add_custom_target(simgrid_java_examples ALL
ADD_TEST(mutualExclusion ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.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(kill ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh)
+ADD_TEST(startKillTime ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh)
#Don't forget to put new test in this list!!!
-set(test_list basic async pingPong CommTime mutualExclusion bypass kill)
+set(test_list basic async pingPong CommTime mutualExclusion bypass kill startKillTime)
##########################################
# Set the DYLD_LIBRARY_PATH for mac #
--- /dev/null
+/*
+ * Copyright 2006,2007,2010. The SimGrid Team. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package.
+ */
+package startKillTime;
+import org.simgrid.msg.Host;
+import org.simgrid.msg.HostFailureException;
+import org.simgrid.msg.HostNotFoundException;
+import org.simgrid.msg.TransferFailureException;
+import org.simgrid.msg.TimeoutException;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Process;
+
+
+public class Master extends Process {
+ public Master(Host host, String name, String[]args, double startTime, double killTime) {
+ super(host,name,args,startTime,killTime);
+ }
+ public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
+ Msg.info("Hello!");
+ waitFor(10.0);
+ Msg.info("OK, goodbye now.");
+
+ }
+}
--- /dev/null
+/*
+ * Copyright 2006,2007,2010. The SimGrid Team. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package.
+ */
+package startKillTime;
+import org.simgrid.msg.Host;
+import org.simgrid.msg.HostFailureException;
+import org.simgrid.msg.HostNotFoundException;
+import org.simgrid.msg.TransferFailureException;
+import org.simgrid.msg.TimeoutException;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Process;
+
+/**
+ * Lazy Guy Slave, suspends itself ASAP
+ */
+public class Slave extends Process {
+ public Slave(Host host, String name, String[]args, double startTime, double killTime) {
+ super(host,name,args,startTime,killTime);
+ }
+ public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
+ Msg.info("Hello!");
+ waitFor(10.0);
+ Msg.info("OK, goodbye now.");
+
+ }
+}
--- /dev/null
+/* Copyright (c) 2007, 2009, 2010, 2012. The SimGrid Team.
+ * All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+package startKillTime;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.NativeException;
+
+public class StartKillTime {
+
+ /* This only contains the launcher. If you do nothing more than than you can run
+ * java org.simgrid.msg.Msg
+ * which also contains such a launcher
+ */
+
+ public static void main(String[] args) throws NativeException {
+ /* initialize the MSG simulation. Must be done before anything else (even logging). */
+ Msg.init(args);
+ if(args.length < 2) {
+ Msg.info("Usage : StartKilltime platform_file deployment_file");
+ Msg.info("example : StartKilltime platform.xml startKilltime.xml");
+ System.exit(1);
+ }
+
+ /* construct the platform and deploy the application */
+ Msg.createEnvironment(args[0]);
+ Msg.deployApplication(args[1]);
+
+ /* execute the simulation. */
+ Msg.run();
+ }
+}
--- /dev/null
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+ <process host="Jacquelin" function="startKillTime.Master"/>
+ <process host="Boivin" function="startKillTime.Slave"/>
+ <process host="Jean_Yves" function="startKillTime.Slave"/>
+ <process host="TeX" function="startKillTime.Slave"/>
+ <process host="Geoff" function="startKillTime.Slave"/>
+ <process host="Disney" function="startKillTime.Slave"/>
+</platform>
--- /dev/null
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+ <process host="Jacquelin" function="startKillTime.Master"/>
+ <process host="Boivin" function="startKillTime.Slave" kill_time="5"/>
+ <process host="Jean_Yves" function="startKillTime.Slave" kill_time="6"/>
+ <process host="TeX" function="startKillTime.Slave" kill_time="7"/>
+ <process host="Geoff" function="startKillTime.Slave" kill_time="8"/>
+ <process host="Disney" function="startKillTime.Slave" kill_time="9"/>
+</platform>
--- /dev/null
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+ <process host="Jacquelin" function="startKillTime.Master"/>
+ <process host="Boivin" function="startKillTime.Slave" start_time="1" />
+ <process host="Jean_Yves" function="startKillTime.Slave" start_time="2"/>
+ <process host="TeX" function="startKillTime.Slave" start_time="3"/>
+ <process host="Geoff" function="startKillTime.Slave" start_time="4"/>
+ <process host="Disney" function="startKillTime.Slave" start_time="5"/>
+</platform>
--- /dev/null
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+ <process host="Jacquelin" function="startKillTime.Master"/>
+ <process host="Boivin" function="startKillTime.Slave" start_time="1" kill_time="5"/>
+ <process host="Jean_Yves" function="startKillTime.Slave" start_time="2" kill_time="6"/>
+ <process host="TeX" function="startKillTime.Slave" start_time="3" kill_time="7"/>
+ <process host="Geoff" function="startKillTime.Slave" start_time="4" kill_time="8"/>
+ <process host="Disney" function="startKillTime.Slave" start_time="5" kill_time="9"/>
+</platform>
--- /dev/null
+#! ./tesh
+$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar startKillTime/StartKillTime ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/startKillTime/deployment_start_kill.xml
+> [0.000000] [jmsg/INFO] Ready to run MSG_MAIN
+> [Jacquelin:startKillTime.Master:(1) 0.000000] [jmsg/INFO] Hello!
+> [Boivin:startKillTime.Slave:(2) 1.000000] [jmsg/INFO] Hello!
+> [Jean_Yves:startKillTime.Slave:(3) 2.000000] [jmsg/INFO] Hello!
+> [TeX:startKillTime.Slave:(4) 3.000000] [jmsg/INFO] Hello!
+> [Geoff:startKillTime.Slave:(5) 4.000000] [jmsg/INFO] Hello!
+> [Disney:startKillTime.Slave:(6) 5.000000] [jmsg/INFO] Hello!
+> [Jacquelin:startKillTime.Master:(1) 10.000000] [jmsg/INFO] OK, goodbye now.
+> [10.000000] [jmsg/INFO] Done running MSG_MAIN
+> [10.000000] [jmsg/INFO] MSG_main finished
+> [10.000000] [jmsg/INFO] Clean java world
+> [10.000000] [jmsg/INFO] Clean native world