X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ab0bf820128e74dc5e7d9e6413b88bca2621a34e..558cfc9fc06c8d1a7206b5995d3736cc11319529:/src/s4u/s4u_actor.cpp diff --git a/src/s4u/s4u_actor.cpp b/src/s4u/s4u_actor.cpp index daf355bdc3..e1358a58d6 100644 --- a/src/s4u/s4u_actor.cpp +++ b/src/s4u/s4u_actor.cpp @@ -15,10 +15,9 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_actor,"S4U actors"); /* C main function of a actor, running this->main */ -static int s4u_actor_runner(int argc, char **argv) { - - smx_process_t smx_proc = SIMIX_process_self(); - simgrid::s4u::Actor *actor = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc); +static int s4u_actor_runner(int argc, char **argv) +{ + simgrid::s4u::Actor *actor = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(); int res = actor->main(argc,argv); return res; } @@ -45,15 +44,13 @@ int s4u::Actor::main(int argc, char **argv) { fprintf(stderr,"Error: You should override the method main(int, char**) in Actor class %s\n",getName()); return 0; } -s4u::Actor *s4u::Actor::current() { +s4u::Actor &s4u::Actor::self() +{ smx_process_t smx_proc = SIMIX_process_self(); - simgrid::s4u::Actor* res = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc); + simgrid::s4u::Actor* res = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(); if (res == NULL) // The smx_process was not created by S4U (but by deployment?). Embed it in a S4U object res = new Actor(smx_proc); - return res; -} -s4u::Actor *s4u::Actor::byPid(int pid) { - return (simgrid::s4u::Actor*) SIMIX_process_self_get_data(SIMIX_process_from_PID(pid)); + return *res; } void s4u::Actor::setAutoRestart(bool autorestart) {