From 867ccc79a341c1c4960c934dd76d68df4c6fabb6 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 25 Aug 2015 16:23:40 +0200 Subject: [PATCH 1/1] I don't understand how it could have worked at any point --- include/simgrid/s4u/actor.hpp | 2 +- src/s4u/s4u_actor.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/simgrid/s4u/actor.hpp b/include/simgrid/s4u/actor.hpp index b342262e44..b8463e643f 100644 --- a/include/simgrid/s4u/actor.hpp +++ b/include/simgrid/s4u/actor.hpp @@ -48,7 +48,7 @@ public: virtual ~Actor() {} /** The main method of your agent */ - int main(int argc, char **argv) {return 0;} + virtual int main(int argc, char **argv); /** The Actor that is currently running */ static Actor *current(); diff --git a/src/s4u/s4u_actor.cpp b/src/s4u/s4u_actor.cpp index 252c441dc4..9a52191c19 100644 --- a/src/s4u/s4u_actor.cpp +++ b/src/s4u/s4u_actor.cpp @@ -42,6 +42,10 @@ s4u::Actor::Actor(const char *name, s4u::Host *host, int argc, char **argv, doub // simcall_process_on_exit(p_smx_process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,p_smx_process); } +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() { smx_process_t smx_proc = SIMIX_process_self(); simgrid::s4u::Actor* res = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc); -- 2.20.1