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_destroy_list_hook; /* simix_global->actors_to_destroy */
boost::intrusive::list_member_hook<> smx_synchro_hook; /* {mutex,cond,sem}->sleeping */
aid_t pid_ = 0;
s4u::Host* host_ = nullptr; /* the host on which the process is running */
smx_context_t context_ = nullptr; /* the context (uctx/raw/thread) that executes the user function */
- std::exception_ptr exception;
+ std::exception_ptr exception_;
bool finished_ = false;
bool blocked_ = false;
bool suspended_ = false;
void kill(smx_actor_t actor);
void kill_all();
+ void yield();
void daemonize();
bool is_daemon() { return daemon_; } /** Whether this actor has been daemonized */
bool is_suspended() { return suspended_; }
simgrid::s4u::Actor* restart();
smx_activity_t suspend(ActorImpl* issuer);
void resume();
+ smx_activity_t join(smx_actor_t actor, double timeout);
smx_activity_t sleep(double duration);
void set_user_data(void* data) { userdata_ = data; }
void* get_user_data() { return userdata_; }
typedef simgrid::kernel::actor::ActorImpl* smx_actor_t;
-XBT_PRIVATE void SIMIX_process_runall();
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);
extern void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr actor);
XBT_PRIVATE void SIMIX_process_sleep_destroy(smx_activity_t synchro);
-XBT_PRIVATE smx_activity_t SIMIX_process_join(smx_actor_t issuer, smx_actor_t process, double timeout);
#endif