X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cf108868b4eeed4d0d9d343bc68557d7814e18c0..558cfc9fc06c8d1a7206b5995d3736cc11319529:/src/s4u/s4u_actor.cpp diff --git a/src/s4u/s4u_actor.cpp b/src/s4u/s4u_actor.cpp index 8344b43178..e1358a58d6 100644 --- a/src/s4u/s4u_actor.cpp +++ b/src/s4u/s4u_actor.cpp @@ -6,7 +6,6 @@ #include "xbt/log.h" #include "src/msg/msg_private.h" -#include "src/msg/msg_mailbox.h" #include "simgrid/s4u/actor.hpp" #include "simgrid/s4u/comm.hpp" @@ -16,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; } @@ -46,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) {