X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/94f442070bfed66af7b861d4a432c9df6a1cdad2..33e691a44189f86fa42deb0e83b64da29d5819b2:/src/simix/ActorImpl.hpp diff --git a/src/simix/ActorImpl.hpp b/src/simix/ActorImpl.hpp index babf410fed..35a9556122 100644 --- a/src/simix/ActorImpl.hpp +++ b/src/simix/ActorImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2019. 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. */ @@ -25,11 +25,11 @@ namespace actor { class ActorImpl : public simgrid::surf::PropertyHolder { public: - ActorImpl() : piface_(this) {} + ActorImpl(simgrid::xbt::string name, simgrid::s4u::Host* host); ~ActorImpl(); void set_auto_restart(bool autorestart) { auto_restart_ = autorestart; } - + void set_kill_time(double kill_time); boost::intrusive::list_member_hook<> host_process_list_hook; /* simgrid::simix::Host::process_list */ boost::intrusive::list_member_hook<> smx_destroy_list_hook; /* simix_global->process_to_destroy */ boost::intrusive::list_member_hook<> smx_synchro_hook; /* {mutex,cond,sem}->sleeping */ @@ -92,6 +92,11 @@ public: private: bool daemon_ = false; public: + static ActorImplPtr create(std::string name, simix::ActorCode code, void* data, s4u::Host* host, + std::unordered_map* properties, smx_actor_t parent_actor); + void exit(); + void kill(smx_actor_t actor); + void daemonize(); bool is_daemon() { return daemon_; } /** Whether this actor has been daemonized */ bool is_suspended() { return suspended_; } @@ -103,6 +108,7 @@ public: void* get_user_data() { return userdata_; } /** Ask the actor to throw an exception right away */ void throw_exception(std::exception_ptr e); + void set_host(sg_host_t dest); }; class ProcessArg { @@ -154,17 +160,11 @@ XBT_PUBLIC void create_maestro(std::function code); typedef simgrid::kernel::actor::ActorImpl* smx_actor_t; -XBT_PRIVATE smx_actor_t SIMIX_process_create(std::string name, std::function code, void* data, sg_host_t host, - std::unordered_map* properties, - smx_actor_t parent_process); - XBT_PRIVATE void SIMIX_process_runall(); -XBT_PRIVATE void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer); XBT_PRIVATE void SIMIX_process_killall(smx_actor_t issuer); XBT_PRIVATE void SIMIX_process_cleanup(smx_actor_t arg); XBT_PRIVATE void SIMIX_process_empty_trash(); XBT_PRIVATE void SIMIX_process_yield(smx_actor_t self); -XBT_PRIVATE void SIMIX_process_change_host(smx_actor_t process, sg_host_t dest); extern void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr actor);