Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Split the behavior of ActorImpl::create
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 7 Mar 2019 14:10:14 +0000 (15:10 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 7 Mar 2019 15:45:50 +0000 (16:45 +0100)
follow the init->set->start logic

examples/deprecated/msg/platform-failures/platform-failures.tesh
examples/s4u/platform-failures/s4u-platform-failures.tesh
src/s4u/s4u_Actor.cpp
src/simix/ActorImpl.cpp
src/simix/ActorImpl.hpp

index 6aa6f0b..9c64e17 100644 (file)
@@ -12,100 +12,100 @@ $ $SG_TEST_EXENV ${bindir:=.}/platform-failures$EXEEXT --log=xbt_cfg.thres:criti
 > [  0.010309] (2:worker@Tremblay) Start execution...
 > [  0.000000] (2:worker@Tremblay) Waiting a message on worker-0
 > [  0.000000] (3:worker@Jupiter) Waiting a message on worker-1
-> [  0.000000] (4:worker@Ginette) Waiting a message on worker-3
-> [  0.000000] (5:worker@Bourassa) Waiting a message on worker-4
+> [  0.000000] (5:worker@Ginette) Waiting a message on worker-3
+> [  0.000000] (6:worker@Bourassa) Waiting a message on worker-4
 > [  0.010309] (1:master@Tremblay) Send a message to worker-1
 > [  1.000000] (0:maestro@) Restart processes on host Fafard
-> [  1.000000] (6:worker@Fafard) Waiting a message on worker-2
+> [  1.000000] (7:worker@Fafard) Waiting a message on worker-2
 > [  1.000000] (1:master@Tremblay) Mmh. Something went wrong with 'worker-1'. Nevermind. Let's keep going!
 > [  1.000000] (1:master@Tremblay) Send a message to worker-2
 > [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (1:master@Tremblay) Mmh. Something went wrong with 'worker-2'. Nevermind. Let's keep going!
-> [  2.000000] (6:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  2.000000] (7:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host Jupiter
 > [  2.000000] (1:master@Tremblay) Send a message to worker-3
-> [  2.000000] (7:worker@Jupiter) Waiting a message on worker-1
+> [  2.000000] (8:worker@Jupiter) Waiting a message on worker-1
 > [  2.010309] (2:worker@Tremblay) Execution complete.
 > [  2.010309] (2:worker@Tremblay) Waiting a message on worker-0
 > [  3.030928] (1:master@Tremblay) Send to worker-3 completed
 > [  3.030928] (1:master@Tremblay) Send a message to worker-4
-> [  3.030928] (4:worker@Ginette) Start execution...
+> [  3.030928] (5:worker@Ginette) Start execution...
 > [  4.061856] (1:master@Tremblay) Send to worker-4 completed
 > [  4.061856] (1:master@Tremblay) Send a message to worker-0
-> [  4.061856] (5:worker@Bourassa) Start execution...
+> [  4.061856] (6:worker@Bourassa) Start execution...
 > [  4.072165] (1:master@Tremblay) Send to worker-0 completed
 > [  4.072165] (1:master@Tremblay) Send a message to worker-1
 > [  4.072165] (2:worker@Tremblay) Start execution...
-> [  5.030928] (4:worker@Ginette) Execution complete.
-> [  5.030928] (4:worker@Ginette) Waiting a message on worker-3
+> [  5.030928] (5:worker@Ginette) Execution complete.
+> [  5.030928] (5:worker@Ginette) Waiting a message on worker-3
 > [  5.103093] (1:master@Tremblay) Send to worker-1 completed
 > [  5.103093] (1:master@Tremblay) Send a message to worker-2
-> [  5.103093] (7:worker@Jupiter) Start execution...
-> [  6.061856] (5:worker@Bourassa) Execution complete.
-> [  6.061856] (5:worker@Bourassa) Waiting a message on worker-4
+> [  5.103093] (8:worker@Jupiter) Start execution...
+> [  6.061856] (6:worker@Bourassa) Execution complete.
+> [  6.061856] (6:worker@Bourassa) Waiting a message on worker-4
 > [  6.072165] (2:worker@Tremblay) Execution complete.
 > [  6.072165] (2:worker@Tremblay) Waiting a message on worker-0
-> [  7.103093] (7:worker@Jupiter) Execution complete.
-> [  7.103093] (7:worker@Jupiter) Waiting a message on worker-1
+> [  7.103093] (8:worker@Jupiter) Execution complete.
+> [  7.103093] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 15.103093] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 15.103093] (1:master@Tremblay) Send a message to worker-3
 > [ 15.103093] (1:master@Tremblay) Mmh. Something went wrong with 'worker-3'. Nevermind. Let's keep going!
 > [ 15.103093] (1:master@Tremblay) Send a message to worker-4
-> [ 15.103093] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 15.103093] (4:worker@Ginette) Waiting a message on worker-3
+> [ 15.103093] (5:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 15.103093] (5:worker@Ginette) Waiting a message on worker-3
 > [ 16.134021] (1:master@Tremblay) Send to worker-4 completed
 > [ 16.134021] (1:master@Tremblay) Send a message to worker-0
-> [ 16.134021] (5:worker@Bourassa) Start execution...
+> [ 16.134021] (6:worker@Bourassa) Start execution...
 > [ 16.144330] (1:master@Tremblay) Send to worker-0 completed
 > [ 16.144330] (1:master@Tremblay) Send a message to worker-1
 > [ 16.144330] (2:worker@Tremblay) Start execution...
 > [ 17.175258] (1:master@Tremblay) Send to worker-1 completed
 > [ 17.175258] (1:master@Tremblay) Send a message to worker-2
-> [ 17.175258] (7:worker@Jupiter) Start execution...
-> [ 18.134021] (5:worker@Bourassa) Execution complete.
-> [ 18.134021] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 17.175258] (8:worker@Jupiter) Start execution...
+> [ 18.134021] (6:worker@Bourassa) Execution complete.
+> [ 18.134021] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 18.144330] (2:worker@Tremblay) Execution complete.
 > [ 18.144330] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 19.175258] (7:worker@Jupiter) Execution complete.
-> [ 19.175258] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 19.175258] (8:worker@Jupiter) Execution complete.
+> [ 19.175258] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 27.175258] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 27.175258] (1:master@Tremblay) Send a message to worker-3
 > [ 28.206186] (1:master@Tremblay) Send to worker-3 completed
 > [ 28.206186] (1:master@Tremblay) Send a message to worker-4
 > [ 28.206186] (1:master@Tremblay) Mmh. Something went wrong with 'worker-4'. Nevermind. Let's keep going!
 > [ 28.206186] (1:master@Tremblay) Send a message to worker-0
-> [ 28.206186] (4:worker@Ginette) Start execution...
-> [ 28.206186] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 28.206186] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 28.206186] (5:worker@Ginette) Start execution...
+> [ 28.206186] (6:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 28.206186] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 28.216495] (1:master@Tremblay) Send to worker-0 completed
 > [ 28.216495] (1:master@Tremblay) Send a message to worker-1
 > [ 28.216495] (2:worker@Tremblay) Start execution...
 > [ 29.247423] (1:master@Tremblay) Send to worker-1 completed
 > [ 29.247423] (1:master@Tremblay) Send a message to worker-2
-> [ 29.247423] (7:worker@Jupiter) Start execution...
-> [ 30.206186] (4:worker@Ginette) Execution complete.
-> [ 30.206186] (4:worker@Ginette) Waiting a message on worker-3
+> [ 29.247423] (8:worker@Jupiter) Start execution...
+> [ 30.206186] (5:worker@Ginette) Execution complete.
+> [ 30.206186] (5:worker@Ginette) Waiting a message on worker-3
 > [ 30.216495] (2:worker@Tremblay) Execution complete.
 > [ 30.216495] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 31.247423] (7:worker@Jupiter) Execution complete.
-> [ 31.247423] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 31.247423] (8:worker@Jupiter) Execution complete.
+> [ 31.247423] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 39.247423] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 39.247423] (1:master@Tremblay) Send a message to worker-3
 > [ 40.278351] (1:master@Tremblay) Send to worker-3 completed
 > [ 40.278351] (1:master@Tremblay) Send a message to worker-4
-> [ 40.278351] (4:worker@Ginette) Start execution...
+> [ 40.278351] (5:worker@Ginette) Start execution...
 > [ 41.309278] (1:master@Tremblay) Send to worker-4 completed
 > [ 41.309278] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
 > [ 41.309278] (2:worker@Tremblay) I'm done. See you!
-> [ 41.309278] (5:worker@Bourassa) Start execution...
-> [ 41.309278] (7:worker@Jupiter) I'm done. See you!
+> [ 41.309278] (6:worker@Bourassa) Start execution...
+> [ 41.309278] (8:worker@Jupiter) I'm done. See you!
 > [ 42.309278] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 43.309278] (0:maestro@) Simulation time 43.3093
 > [ 43.309278] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-3'. Nevermind. Let's keep going!
 > [ 43.309278] (1:master@Tremblay) Goodbye now!
-> [ 43.309278] (5:worker@Bourassa) Execution complete.
-> [ 43.309278] (5:worker@Bourassa) Waiting a message on worker-4
-> [ 43.309278] (5:worker@Bourassa) I'm done. See you!
+> [ 43.309278] (6:worker@Bourassa) Execution complete.
+> [ 43.309278] (6:worker@Bourassa) Waiting a message on worker-4
+> [ 43.309278] (6:worker@Bourassa) I'm done. See you!
 
 p Testing a simple master/worker example application handling failures. TCP crosstraffic ENABLED
 
@@ -117,100 +117,100 @@ $ $SG_TEST_EXENV ${bindir:=.}/platform-failures$EXEEXT --log=xbt_cfg.thres:criti
 > [  0.000000] (1:master@Tremblay) Send a message to worker-0
 > [  0.000000] (2:worker@Tremblay) Waiting a message on worker-0
 > [  0.000000] (3:worker@Jupiter) Waiting a message on worker-1
-> [  0.000000] (4:worker@Ginette) Waiting a message on worker-3
-> [  0.000000] (5:worker@Bourassa) Waiting a message on worker-4
+> [  0.000000] (5:worker@Ginette) Waiting a message on worker-3
+> [  0.000000] (6:worker@Bourassa) Waiting a message on worker-4
 > [  0.010825] (2:worker@Tremblay) Start execution...
 > [  0.010825] (1:master@Tremblay) Send to worker-0 completed
 > [  0.010825] (1:master@Tremblay) Send a message to worker-1
 > [  1.000000] (0:maestro@) Restart processes on host Fafard
-> [  1.000000] (6:worker@Fafard) Waiting a message on worker-2
+> [  1.000000] (7:worker@Fafard) Waiting a message on worker-2
 > [  1.000000] (1:master@Tremblay) Mmh. Something went wrong with 'worker-1'. Nevermind. Let's keep going!
 > [  1.000000] (1:master@Tremblay) Send a message to worker-2
 > [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host Jupiter
-> [  2.000000] (7:worker@Jupiter) Waiting a message on worker-1
+> [  2.000000] (8:worker@Jupiter) Waiting a message on worker-1
 > [  2.000000] (1:master@Tremblay) Mmh. Something went wrong with 'worker-2'. Nevermind. Let's keep going!
 > [  2.000000] (1:master@Tremblay) Send a message to worker-3
-> [  2.000000] (6:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  2.000000] (7:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.010825] (2:worker@Tremblay) Execution complete.
 > [  2.010825] (2:worker@Tremblay) Waiting a message on worker-0
-> [  3.082474] (4:worker@Ginette) Start execution...
+> [  3.082474] (5:worker@Ginette) Start execution...
 > [  3.082474] (1:master@Tremblay) Send to worker-3 completed
 > [  3.082474] (1:master@Tremblay) Send a message to worker-4
-> [  4.164948] (5:worker@Bourassa) Start execution...
+> [  4.164948] (6:worker@Bourassa) Start execution...
 > [  4.164948] (1:master@Tremblay) Send to worker-4 completed
 > [  4.164948] (1:master@Tremblay) Send a message to worker-0
 > [  4.175773] (2:worker@Tremblay) Start execution...
 > [  4.175773] (1:master@Tremblay) Send to worker-0 completed
 > [  4.175773] (1:master@Tremblay) Send a message to worker-1
-> [  5.082474] (4:worker@Ginette) Execution complete.
-> [  5.082474] (4:worker@Ginette) Waiting a message on worker-3
-> [  5.258247] (7:worker@Jupiter) Start execution...
+> [  5.082474] (5:worker@Ginette) Execution complete.
+> [  5.082474] (5:worker@Ginette) Waiting a message on worker-3
+> [  5.258247] (8:worker@Jupiter) Start execution...
 > [  5.258247] (1:master@Tremblay) Send to worker-1 completed
 > [  5.258247] (1:master@Tremblay) Send a message to worker-2
-> [  6.164948] (5:worker@Bourassa) Execution complete.
-> [  6.164948] (5:worker@Bourassa) Waiting a message on worker-4
+> [  6.164948] (6:worker@Bourassa) Execution complete.
+> [  6.164948] (6:worker@Bourassa) Waiting a message on worker-4
 > [  6.175773] (2:worker@Tremblay) Execution complete.
 > [  6.175773] (2:worker@Tremblay) Waiting a message on worker-0
-> [  7.258247] (7:worker@Jupiter) Execution complete.
-> [  7.258247] (7:worker@Jupiter) Waiting a message on worker-1
+> [  7.258247] (8:worker@Jupiter) Execution complete.
+> [  7.258247] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 15.258247] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 15.258247] (1:master@Tremblay) Send a message to worker-3
-> [ 15.258247] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 15.258247] (4:worker@Ginette) Waiting a message on worker-3
+> [ 15.258247] (5:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 15.258247] (5:worker@Ginette) Waiting a message on worker-3
 > [ 15.258247] (1:master@Tremblay) Mmh. Something went wrong with 'worker-3'. Nevermind. Let's keep going!
 > [ 15.258247] (1:master@Tremblay) Send a message to worker-4
-> [ 16.340722] (5:worker@Bourassa) Start execution...
+> [ 16.340722] (6:worker@Bourassa) Start execution...
 > [ 16.340722] (1:master@Tremblay) Send to worker-4 completed
 > [ 16.340722] (1:master@Tremblay) Send a message to worker-0
 > [ 16.351546] (2:worker@Tremblay) Start execution...
 > [ 16.351546] (1:master@Tremblay) Send to worker-0 completed
 > [ 16.351546] (1:master@Tremblay) Send a message to worker-1
-> [ 17.434021] (7:worker@Jupiter) Start execution...
+> [ 17.434021] (8:worker@Jupiter) Start execution...
 > [ 17.434021] (1:master@Tremblay) Send to worker-1 completed
 > [ 17.434021] (1:master@Tremblay) Send a message to worker-2
-> [ 18.340722] (5:worker@Bourassa) Execution complete.
-> [ 18.340722] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 18.340722] (6:worker@Bourassa) Execution complete.
+> [ 18.340722] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 18.351546] (2:worker@Tremblay) Execution complete.
 > [ 18.351546] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 19.434021] (7:worker@Jupiter) Execution complete.
-> [ 19.434021] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 19.434021] (8:worker@Jupiter) Execution complete.
+> [ 19.434021] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 27.434021] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 27.434021] (1:master@Tremblay) Send a message to worker-3
-> [ 28.516495] (4:worker@Ginette) Start execution...
+> [ 28.516495] (5:worker@Ginette) Start execution...
 > [ 28.516495] (1:master@Tremblay) Send to worker-3 completed
 > [ 28.516495] (1:master@Tremblay) Send a message to worker-4
-> [ 28.516495] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 28.516495] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 28.516495] (6:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 28.516495] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 28.516495] (1:master@Tremblay) Mmh. Something went wrong with 'worker-4'. Nevermind. Let's keep going!
 > [ 28.516495] (1:master@Tremblay) Send a message to worker-0
 > [ 28.527320] (2:worker@Tremblay) Start execution...
 > [ 28.527320] (1:master@Tremblay) Send to worker-0 completed
 > [ 28.527320] (1:master@Tremblay) Send a message to worker-1
-> [ 29.609794] (7:worker@Jupiter) Start execution...
+> [ 29.609794] (8:worker@Jupiter) Start execution...
 > [ 29.609794] (1:master@Tremblay) Send to worker-1 completed
 > [ 29.609794] (1:master@Tremblay) Send a message to worker-2
-> [ 30.516495] (4:worker@Ginette) Execution complete.
-> [ 30.516495] (4:worker@Ginette) Waiting a message on worker-3
+> [ 30.516495] (5:worker@Ginette) Execution complete.
+> [ 30.516495] (5:worker@Ginette) Waiting a message on worker-3
 > [ 30.527320] (2:worker@Tremblay) Execution complete.
 > [ 30.527320] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 31.609794] (7:worker@Jupiter) Execution complete.
-> [ 31.609794] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 31.609794] (8:worker@Jupiter) Execution complete.
+> [ 31.609794] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 39.609794] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 39.609794] (1:master@Tremblay) Send a message to worker-3
-> [ 40.692268] (4:worker@Ginette) Start execution...
+> [ 40.692268] (5:worker@Ginette) Start execution...
 > [ 40.692268] (1:master@Tremblay) Send to worker-3 completed
 > [ 40.692268] (1:master@Tremblay) Send a message to worker-4
-> [ 41.774742] (5:worker@Bourassa) Start execution...
+> [ 41.774742] (6:worker@Bourassa) Start execution...
 > [ 41.774742] (1:master@Tremblay) Send to worker-4 completed
 > [ 41.774742] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
 > [ 41.774742] (2:worker@Tremblay) I'm done. See you!
-> [ 41.774742] (7:worker@Jupiter) I'm done. See you!
+> [ 41.774742] (8:worker@Jupiter) I'm done. See you!
 > [ 42.774742] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
-> [ 43.774742] (5:worker@Bourassa) Execution complete.
-> [ 43.774742] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 43.774742] (6:worker@Bourassa) Execution complete.
+> [ 43.774742] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 43.774742] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-3'. Nevermind. Let's keep going!
-> [ 43.774742] (5:worker@Bourassa) I'm done. See you!
+> [ 43.774742] (6:worker@Bourassa) I'm done. See you!
 > [ 43.774742] (1:master@Tremblay) Goodbye now!
 > [ 43.774742] (0:maestro@) Simulation time 43.7747
 
index ed8a8cf..9d30015 100644 (file)
@@ -12,100 +12,100 @@ $ $SG_TEST_EXENV ${bindir:=.}/s4u-platform-failures$EXEEXT --log=xbt_cfg.thres:c
 > [  0.010309] (2:worker@Tremblay) Start execution...
 > [  0.000000] (2:worker@Tremblay) Waiting a message on worker-0
 > [  0.000000] (3:worker@Jupiter) Waiting a message on worker-1
-> [  0.000000] (4:worker@Ginette) Waiting a message on worker-3
-> [  0.000000] (5:worker@Bourassa) Waiting a message on worker-4
+> [  0.000000] (5:worker@Ginette) Waiting a message on worker-3
+> [  0.000000] (6:worker@Bourassa) Waiting a message on worker-4
 > [  0.010309] (1:master@Tremblay) Send a message to worker-1
 > [  1.000000] (0:maestro@) Restart processes on host Fafard
-> [  1.000000] (6:worker@Fafard) Waiting a message on worker-2
+> [  1.000000] (7:worker@Fafard) Waiting a message on worker-2
 > [  1.000000] (1:master@Tremblay) Mmh. The communication with 'worker-1' failed. Nevermind. Let's keep going!
 > [  1.000000] (1:master@Tremblay) Send a message to worker-2
 > [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (1:master@Tremblay) Mmh. The communication with 'worker-2' failed. Nevermind. Let's keep going!
-> [  2.000000] (6:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  2.000000] (7:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host Jupiter
 > [  2.000000] (1:master@Tremblay) Send a message to worker-3
-> [  2.000000] (7:worker@Jupiter) Waiting a message on worker-1
+> [  2.000000] (8:worker@Jupiter) Waiting a message on worker-1
 > [  2.010309] (2:worker@Tremblay) Execution complete.
 > [  2.010309] (2:worker@Tremblay) Waiting a message on worker-0
 > [  3.030928] (1:master@Tremblay) Send to worker-3 completed
 > [  3.030928] (1:master@Tremblay) Send a message to worker-4
-> [  3.030928] (4:worker@Ginette) Start execution...
+> [  3.030928] (5:worker@Ginette) Start execution...
 > [  4.061856] (1:master@Tremblay) Send to worker-4 completed
 > [  4.061856] (1:master@Tremblay) Send a message to worker-0
-> [  4.061856] (5:worker@Bourassa) Start execution...
+> [  4.061856] (6:worker@Bourassa) Start execution...
 > [  4.072165] (1:master@Tremblay) Send to worker-0 completed
 > [  4.072165] (1:master@Tremblay) Send a message to worker-1
 > [  4.072165] (2:worker@Tremblay) Start execution...
-> [  5.030928] (4:worker@Ginette) Execution complete.
-> [  5.030928] (4:worker@Ginette) Waiting a message on worker-3
+> [  5.030928] (5:worker@Ginette) Execution complete.
+> [  5.030928] (5:worker@Ginette) Waiting a message on worker-3
 > [  5.103093] (1:master@Tremblay) Send to worker-1 completed
 > [  5.103093] (1:master@Tremblay) Send a message to worker-2
-> [  5.103093] (7:worker@Jupiter) Start execution...
-> [  6.061856] (5:worker@Bourassa) Execution complete.
-> [  6.061856] (5:worker@Bourassa) Waiting a message on worker-4
+> [  5.103093] (8:worker@Jupiter) Start execution...
+> [  6.061856] (6:worker@Bourassa) Execution complete.
+> [  6.061856] (6:worker@Bourassa) Waiting a message on worker-4
 > [  6.072165] (2:worker@Tremblay) Execution complete.
 > [  6.072165] (2:worker@Tremblay) Waiting a message on worker-0
-> [  7.103093] (7:worker@Jupiter) Execution complete.
-> [  7.103093] (7:worker@Jupiter) Waiting a message on worker-1
+> [  7.103093] (8:worker@Jupiter) Execution complete.
+> [  7.103093] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 15.103093] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 15.103093] (1:master@Tremblay) Send a message to worker-3
 > [ 15.103093] (1:master@Tremblay) Mmh. The communication with 'worker-3' failed. Nevermind. Let's keep going!
 > [ 15.103093] (1:master@Tremblay) Send a message to worker-4
-> [ 15.103093] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 15.103093] (4:worker@Ginette) Waiting a message on worker-3
+> [ 15.103093] (5:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 15.103093] (5:worker@Ginette) Waiting a message on worker-3
 > [ 16.134021] (1:master@Tremblay) Send to worker-4 completed
 > [ 16.134021] (1:master@Tremblay) Send a message to worker-0
-> [ 16.134021] (5:worker@Bourassa) Start execution...
+> [ 16.134021] (6:worker@Bourassa) Start execution...
 > [ 16.144330] (1:master@Tremblay) Send to worker-0 completed
 > [ 16.144330] (1:master@Tremblay) Send a message to worker-1
 > [ 16.144330] (2:worker@Tremblay) Start execution...
 > [ 17.175258] (1:master@Tremblay) Send to worker-1 completed
 > [ 17.175258] (1:master@Tremblay) Send a message to worker-2
-> [ 17.175258] (7:worker@Jupiter) Start execution...
-> [ 18.134021] (5:worker@Bourassa) Execution complete.
-> [ 18.134021] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 17.175258] (8:worker@Jupiter) Start execution...
+> [ 18.134021] (6:worker@Bourassa) Execution complete.
+> [ 18.134021] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 18.144330] (2:worker@Tremblay) Execution complete.
 > [ 18.144330] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 19.175258] (7:worker@Jupiter) Execution complete.
-> [ 19.175258] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 19.175258] (8:worker@Jupiter) Execution complete.
+> [ 19.175258] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 27.175258] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 27.175258] (1:master@Tremblay) Send a message to worker-3
 > [ 28.206186] (1:master@Tremblay) Send to worker-3 completed
 > [ 28.206186] (1:master@Tremblay) Send a message to worker-4
 > [ 28.206186] (1:master@Tremblay) Mmh. The communication with 'worker-4' failed. Nevermind. Let's keep going!
 > [ 28.206186] (1:master@Tremblay) Send a message to worker-0
-> [ 28.206186] (4:worker@Ginette) Start execution...
-> [ 28.206186] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 28.206186] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 28.206186] (5:worker@Ginette) Start execution...
+> [ 28.206186] (6:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 28.206186] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 28.216495] (1:master@Tremblay) Send to worker-0 completed
 > [ 28.216495] (1:master@Tremblay) Send a message to worker-1
 > [ 28.216495] (2:worker@Tremblay) Start execution...
 > [ 29.247423] (1:master@Tremblay) Send to worker-1 completed
 > [ 29.247423] (1:master@Tremblay) Send a message to worker-2
-> [ 29.247423] (7:worker@Jupiter) Start execution...
-> [ 30.206186] (4:worker@Ginette) Execution complete.
-> [ 30.206186] (4:worker@Ginette) Waiting a message on worker-3
+> [ 29.247423] (8:worker@Jupiter) Start execution...
+> [ 30.206186] (5:worker@Ginette) Execution complete.
+> [ 30.206186] (5:worker@Ginette) Waiting a message on worker-3
 > [ 30.216495] (2:worker@Tremblay) Execution complete.
 > [ 30.216495] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 31.247423] (7:worker@Jupiter) Execution complete.
-> [ 31.247423] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 31.247423] (8:worker@Jupiter) Execution complete.
+> [ 31.247423] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 39.247423] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 39.247423] (1:master@Tremblay) Send a message to worker-3
 > [ 40.278351] (1:master@Tremblay) Send to worker-3 completed
 > [ 40.278351] (1:master@Tremblay) Send a message to worker-4
-> [ 40.278351] (4:worker@Ginette) Start execution...
+> [ 40.278351] (5:worker@Ginette) Start execution...
 > [ 41.309278] (1:master@Tremblay) Send to worker-4 completed
 > [ 41.309278] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
 > [ 41.309278] (2:worker@Tremblay) I'm done. See you!
-> [ 41.309278] (5:worker@Bourassa) Start execution...
-> [ 41.309278] (7:worker@Jupiter) I'm done. See you!
+> [ 41.309278] (6:worker@Bourassa) Start execution...
+> [ 41.309278] (8:worker@Jupiter) I'm done. See you!
 > [ 42.309278] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 43.309278] (0:maestro@) Simulation time 43.3093
 > [ 43.309278] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-3'. Nevermind. Let's keep going!
 > [ 43.309278] (1:master@Tremblay) Goodbye now!
-> [ 43.309278] (5:worker@Bourassa) Execution complete.
-> [ 43.309278] (5:worker@Bourassa) Waiting a message on worker-4
-> [ 43.309278] (5:worker@Bourassa) I'm done. See you!
+> [ 43.309278] (6:worker@Bourassa) Execution complete.
+> [ 43.309278] (6:worker@Bourassa) Waiting a message on worker-4
+> [ 43.309278] (6:worker@Bourassa) I'm done. See you!
 
 p Testing a simple master/worker example application handling failures. TCP crosstraffic ENABLED
 
@@ -117,99 +117,99 @@ $ $SG_TEST_EXENV ${bindir:=.}/s4u-platform-failures$EXEEXT --log=xbt_cfg.thres:c
 > [  0.000000] (1:master@Tremblay) Send a message to worker-0
 > [  0.000000] (2:worker@Tremblay) Waiting a message on worker-0
 > [  0.000000] (3:worker@Jupiter) Waiting a message on worker-1
-> [  0.000000] (4:worker@Ginette) Waiting a message on worker-3
-> [  0.000000] (5:worker@Bourassa) Waiting a message on worker-4
+> [  0.000000] (5:worker@Ginette) Waiting a message on worker-3
+> [  0.000000] (6:worker@Bourassa) Waiting a message on worker-4
 > [  0.010825] (2:worker@Tremblay) Start execution...
 > [  0.010825] (1:master@Tremblay) Send to worker-0 completed
 > [  0.010825] (1:master@Tremblay) Send a message to worker-1
 > [  1.000000] (0:maestro@) Restart processes on host Fafard
-> [  1.000000] (6:worker@Fafard) Waiting a message on worker-2
+> [  1.000000] (7:worker@Fafard) Waiting a message on worker-2
 > [  1.000000] (1:master@Tremblay) Mmh. The communication with 'worker-1' failed. Nevermind. Let's keep going!
 > [  1.000000] (1:master@Tremblay) Send a message to worker-2
 > [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host Jupiter
-> [  2.000000] (7:worker@Jupiter) Waiting a message on worker-1
+> [  2.000000] (8:worker@Jupiter) Waiting a message on worker-1
 > [  2.000000] (1:master@Tremblay) Mmh. The communication with 'worker-2' failed. Nevermind. Let's keep going!
 > [  2.000000] (1:master@Tremblay) Send a message to worker-3
-> [  2.000000] (6:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  2.000000] (7:worker@Fafard) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.010825] (2:worker@Tremblay) Execution complete.
 > [  2.010825] (2:worker@Tremblay) Waiting a message on worker-0
-> [  3.082474] (4:worker@Ginette) Start execution...
+> [  3.082474] (5:worker@Ginette) Start execution...
 > [  3.082474] (1:master@Tremblay) Send to worker-3 completed
 > [  3.082474] (1:master@Tremblay) Send a message to worker-4
-> [  4.164948] (5:worker@Bourassa) Start execution...
+> [  4.164948] (6:worker@Bourassa) Start execution...
 > [  4.164948] (1:master@Tremblay) Send to worker-4 completed
 > [  4.164948] (1:master@Tremblay) Send a message to worker-0
 > [  4.175773] (2:worker@Tremblay) Start execution...
 > [  4.175773] (1:master@Tremblay) Send to worker-0 completed
 > [  4.175773] (1:master@Tremblay) Send a message to worker-1
-> [  5.082474] (4:worker@Ginette) Execution complete.
-> [  5.082474] (4:worker@Ginette) Waiting a message on worker-3
-> [  5.258247] (7:worker@Jupiter) Start execution...
+> [  5.082474] (5:worker@Ginette) Execution complete.
+> [  5.082474] (5:worker@Ginette) Waiting a message on worker-3
+> [  5.258247] (8:worker@Jupiter) Start execution...
 > [  5.258247] (1:master@Tremblay) Send to worker-1 completed
 > [  5.258247] (1:master@Tremblay) Send a message to worker-2
-> [  6.164948] (5:worker@Bourassa) Execution complete.
-> [  6.164948] (5:worker@Bourassa) Waiting a message on worker-4
+> [  6.164948] (6:worker@Bourassa) Execution complete.
+> [  6.164948] (6:worker@Bourassa) Waiting a message on worker-4
 > [  6.175773] (2:worker@Tremblay) Execution complete.
 > [  6.175773] (2:worker@Tremblay) Waiting a message on worker-0
-> [  7.258247] (7:worker@Jupiter) Execution complete.
-> [  7.258247] (7:worker@Jupiter) Waiting a message on worker-1
+> [  7.258247] (8:worker@Jupiter) Execution complete.
+> [  7.258247] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 15.258247] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 15.258247] (1:master@Tremblay) Send a message to worker-3
-> [ 15.258247] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 15.258247] (4:worker@Ginette) Waiting a message on worker-3
+> [ 15.258247] (5:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 15.258247] (5:worker@Ginette) Waiting a message on worker-3
 > [ 15.258247] (1:master@Tremblay) Mmh. The communication with 'worker-3' failed. Nevermind. Let's keep going!
 > [ 15.258247] (1:master@Tremblay) Send a message to worker-4
-> [ 16.340722] (5:worker@Bourassa) Start execution...
+> [ 16.340722] (6:worker@Bourassa) Start execution...
 > [ 16.340722] (1:master@Tremblay) Send to worker-4 completed
 > [ 16.340722] (1:master@Tremblay) Send a message to worker-0
 > [ 16.351546] (2:worker@Tremblay) Start execution...
 > [ 16.351546] (1:master@Tremblay) Send to worker-0 completed
 > [ 16.351546] (1:master@Tremblay) Send a message to worker-1
-> [ 17.434021] (7:worker@Jupiter) Start execution...
+> [ 17.434021] (8:worker@Jupiter) Start execution...
 > [ 17.434021] (1:master@Tremblay) Send to worker-1 completed
 > [ 17.434021] (1:master@Tremblay) Send a message to worker-2
-> [ 18.340722] (5:worker@Bourassa) Execution complete.
-> [ 18.340722] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 18.340722] (6:worker@Bourassa) Execution complete.
+> [ 18.340722] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 18.351546] (2:worker@Tremblay) Execution complete.
 > [ 18.351546] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 19.434021] (7:worker@Jupiter) Execution complete.
-> [ 19.434021] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 19.434021] (8:worker@Jupiter) Execution complete.
+> [ 19.434021] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 27.434021] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 27.434021] (1:master@Tremblay) Send a message to worker-3
-> [ 28.516495] (4:worker@Ginette) Start execution...
+> [ 28.516495] (5:worker@Ginette) Start execution...
 > [ 28.516495] (1:master@Tremblay) Send to worker-3 completed
 > [ 28.516495] (1:master@Tremblay) Send a message to worker-4
-> [ 28.516495] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
-> [ 28.516495] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 28.516495] (6:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 28.516495] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 28.516495] (1:master@Tremblay) Mmh. The communication with 'worker-4' failed. Nevermind. Let's keep going!
 > [ 28.516495] (1:master@Tremblay) Send a message to worker-0
 > [ 28.527320] (2:worker@Tremblay) Start execution...
 > [ 28.527320] (1:master@Tremblay) Send to worker-0 completed
 > [ 28.527320] (1:master@Tremblay) Send a message to worker-1
-> [ 29.609794] (7:worker@Jupiter) Start execution...
+> [ 29.609794] (8:worker@Jupiter) Start execution...
 > [ 29.609794] (1:master@Tremblay) Send to worker-1 completed
 > [ 29.609794] (1:master@Tremblay) Send a message to worker-2
-> [ 30.516495] (4:worker@Ginette) Execution complete.
-> [ 30.516495] (4:worker@Ginette) Waiting a message on worker-3
+> [ 30.516495] (5:worker@Ginette) Execution complete.
+> [ 30.516495] (5:worker@Ginette) Waiting a message on worker-3
 > [ 30.527320] (2:worker@Tremblay) Execution complete.
 > [ 30.527320] (2:worker@Tremblay) Waiting a message on worker-0
-> [ 31.609794] (7:worker@Jupiter) Execution complete.
-> [ 31.609794] (7:worker@Jupiter) Waiting a message on worker-1
+> [ 31.609794] (8:worker@Jupiter) Execution complete.
+> [ 31.609794] (8:worker@Jupiter) Waiting a message on worker-1
 > [ 39.609794] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
 > [ 39.609794] (1:master@Tremblay) Send a message to worker-3
-> [ 40.692268] (4:worker@Ginette) Start execution...
+> [ 40.692268] (5:worker@Ginette) Start execution...
 > [ 40.692268] (1:master@Tremblay) Send to worker-3 completed
 > [ 40.692268] (1:master@Tremblay) Send a message to worker-4
-> [ 41.774742] (5:worker@Bourassa) Start execution...
+> [ 41.774742] (6:worker@Bourassa) Start execution...
 > [ 41.774742] (1:master@Tremblay) Send to worker-4 completed
 > [ 41.774742] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
 > [ 41.774742] (2:worker@Tremblay) I'm done. See you!
-> [ 41.774742] (7:worker@Jupiter) I'm done. See you!
+> [ 41.774742] (8:worker@Jupiter) I'm done. See you!
 > [ 42.774742] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-2'. Nevermind. Let's keep going!
-> [ 43.774742] (5:worker@Bourassa) Execution complete.
-> [ 43.774742] (5:worker@Bourassa) Waiting a message on worker-4
+> [ 43.774742] (6:worker@Bourassa) Execution complete.
+> [ 43.774742] (6:worker@Bourassa) Waiting a message on worker-4
 > [ 43.774742] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'worker-3'. Nevermind. Let's keep going!
-> [ 43.774742] (5:worker@Bourassa) I'm done. See you!
+> [ 43.774742] (6:worker@Bourassa) I'm done. See you!
 > [ 43.774742] (1:master@Tremblay) Goodbye now!
 > [ 43.774742] (0:maestro@) Simulation time 43.7747
index ed619e0..1d719e0 100644 (file)
@@ -42,9 +42,12 @@ ActorPtr Actor::self()
 
 ActorPtr Actor::create(std::string name, s4u::Host* host, std::function<void()> code)
 {
+  smx_actor_t self = SIMIX_process_self();
+
   simgrid::kernel::actor::ActorImpl* actor =
-      simcall_process_create(std::move(name), std::move(code), nullptr, host, nullptr);
-  return actor->iface();
+      simgrid::simix::simcall([self, name, host, code] { return self->init(std::move(name), host)->start(code); });
+
+  return actor->ciface();
 }
 
 ActorPtr Actor::create(std::string name, s4u::Host* host, const std::string& function, std::vector<std::string> args)
index 9268dd4..4e02287 100644 (file)
@@ -444,51 +444,63 @@ void ActorImpl::set_host(s4u::Host* dest)
   dest->pimpl_->process_list_.push_back(*this);
 }
 
-ActorImplPtr ActorImpl::create(std::string name, simix::ActorCode code, void* data, s4u::Host* host,
-                               std::unordered_map<std::string, std::string>* properties, ActorImpl* parent_actor)
+ActorImplPtr ActorImpl::init(std::string name, s4u::Host* host)
 {
+  ActorImpl* actor = new ActorImpl(simgrid::xbt::string(name), host);
+  actor->set_ppid(this->pid_);
 
-  XBT_DEBUG("Start actor %s@'%s'", name.c_str(), host->get_cname());
+  intrusive_ptr_add_ref(actor);
+  /* The on_creation() signal must be delayed until there, where the pid and everything is set */
+  s4u::Actor::on_creation(actor->iface());
 
-  if (not host->is_on()) {
-    XBT_WARN("Cannot launch actor '%s' on failed host '%s'", name.c_str(), host->get_cname());
+  return ActorImplPtr(actor);
+}
+
+ActorImpl* ActorImpl::start(simix::ActorCode code)
+{
+  xbt_assert(code && host_ != nullptr, "Invalid parameters");
+
+  if (not host_->is_on()) {
+    XBT_WARN("Cannot launch actor '%s' on failed host '%s'", name_.c_str(), host_->get_cname());
     std::rethrow_exception(
-        std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Cannot create actor on failed host.")));
+        std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Cannot start actor on failed host.")));
   }
 
-  ActorImpl* actor = new ActorImpl(simgrid::xbt::string(name), host);
+  this->code = code;
+  XBT_VERB("Create context %s", get_cname());
+  context_ = simix_global->context_factory->create_context(std::move(code), this);
 
-  xbt_assert(code && host != nullptr, "Invalid parameters");
-  /* actor data */
-  actor->set_user_data(data);
-  actor->code = code;
+  XBT_DEBUG("Start context '%s'", get_cname());
 
-  if (parent_actor != nullptr)
-    actor->set_ppid(parent_actor->get_pid());
+  /* Add the actor to its host's actor list */
+  host_->pimpl_->process_list_.push_back(*this);
+  simix_global->process_list[pid_] = this;
 
-  XBT_VERB("Create context %s", actor->get_cname());
-  actor->context_ = simix_global->context_factory->create_context(std::move(code), actor);
+  /* Now insert it in the global actor list and in the actor to run list */
+  XBT_DEBUG("Inserting [%p] %s(%s) in the to_run list", this, get_cname(), host_->get_cname());
+  simix_global->actors_to_run.push_back(this);
+
+  return this;
+}
+
+ActorImplPtr ActorImpl::create(std::string name, simix::ActorCode code, void* data, s4u::Host* host,
+                               std::unordered_map<std::string, std::string>* properties, ActorImpl* parent_actor)
+{
+  XBT_DEBUG("Start actor %s@'%s'", name.c_str(), host->get_cname());
+
+  ActorImplPtr actor = SIMIX_process_self()->init(simgrid::xbt::string(name), host);
+
+  /* actor data */
+  actor->set_user_data(data);
 
   /* Add properties */
   if (properties != nullptr)
     for (auto const& kv : *properties)
       actor->set_property(kv.first, kv.second);
 
-  /* Add the actor to its host's actor list */
-  host->pimpl_->process_list_.push_back(*actor);
-
-  XBT_DEBUG("Start context '%s'", actor->get_cname());
+  actor->start(std::move(code));
 
-  /* Now insert it in the global actor list and in the actor to run list */
-  simix_global->process_list[actor->get_pid()] = actor;
-  XBT_DEBUG("Inserting [%p] %s(%s) in the to_run list", actor, actor->get_cname(), host->get_cname());
-  simix_global->actors_to_run.push_back(actor);
-  intrusive_ptr_add_ref(actor);
-
-  /* The on_creation() signal must be delayed until there, where the pid and everything is set */
-  s4u::Actor::on_creation(actor->iface());
-
-  return ActorImplPtr(actor);
+  return actor;
 }
 
 void create_maestro(simix::ActorCode code)
index a0c178d..3071474 100644 (file)
@@ -105,6 +105,9 @@ public:
   s4u::ActorPtr iface() { return s4u::ActorPtr(&piface_); }
   s4u::Actor* ciface() { return &piface_; }
 
+  ActorImplPtr init(std::string name, s4u::Host* host);
+  ActorImpl* start(simix::ActorCode code);
+
   static ActorImplPtr create(std::string name, simix::ActorCode code, void* data, s4u::Host* host,
                              std::unordered_map<std::string, std::string>* properties, ActorImpl* parent_actor);
   static ActorImplPtr attach(std::string name, void* data, s4u::Host* host,