SimGrid  3.16
Versatile Simulation of Distributed Systems
simgrid::s4u::this_actor Namespace Reference

Detailed Description

Static methods working on the current actor (see s4u::Actor)

Functions

bool isMaestro ()
 Returns true if run from the kernel mode, and false if run from a real actor. More...
 
void sleep_for (double duration)
 Block the actor sleeping for that amount of seconds (may throws hostFailure) More...
 
void sleep_until (double timeout)
 
template<class Rep , class Period >
void sleep_for (std::chrono::duration< Rep, Period > duration)
 
template<class Duration >
void sleep_until (const SimulationTimePoint< Duration > &timeout_time)
 
void sleep (double duration)
 
e_smx_state_t execute (double flop)
 Block the actor, computing the given amount of flops. More...
 
voidrecv (MailboxPtr chan)
 Block the actor until it gets a message from the given mailbox. More...
 
CommPtr irecv (MailboxPtr chan, void **data)
 
void send (MailboxPtr chan, void *payload, double simulatedSize)
 Block the actor until it delivers a message of the given simulated size to the given mailbox. More...
 
void send (MailboxPtr chan, void *payload, double simulatedSize, double timeout)
 
CommPtr isend (MailboxPtr chan, void *payload, double simulatedSize)
 
void dsend (MailboxPtr chan, void *payload, double simulatedSize)
 
aid_t pid ()
 Returns the actor ID of the current actor (same as pid). More...
 
aid_t ppid ()
 Returns the ancestor's actor ID of the current actor (same as ppid). More...
 
std::string name ()
 Returns the name of the current actor. More...
 
Hosthost ()
 Returns the name of the host on which the process is running. More...
 
void suspend ()
 Suspend the actor. More...
 
void resume ()
 Resume the actor. More...
 
int isSuspended ()
 
void kill ()
 kill the actor. More...
 
void onExit (int_f_pvoid_pvoid_t fun, void *data)
 Add a function to the list of "on_exit" functions. More...
 
void migrate (Host *new_host)
 Migrate the actor to a new host. More...
 

Function Documentation

◆ isMaestro()

bool simgrid::s4u::this_actor::isMaestro ( )

Returns true if run from the kernel mode, and false if run from a real actor.

Everything that is run out of any actor (simulation setup before the engine is run, computing the model evolutions as a result to the actors' action, etc) is run in kernel mode, just as in any operating systems.

In SimGrid, the actor in charge of doing the stuff in kernel mode is called Maestro, because it is the one scheduling when the others should move or wait.

◆ sleep_for() [1/2]

void simgrid::s4u::this_actor::sleep_for ( double  duration)

◆ sleep_until() [1/2]

void simgrid::s4u::this_actor::sleep_until ( double  timeout)

◆ sleep_for() [2/2]

template<class Rep , class Period >
void simgrid::s4u::this_actor::sleep_for ( std::chrono::duration< Rep, Period >  duration)
inline

◆ sleep_until() [2/2]

template<class Duration >
void simgrid::s4u::this_actor::sleep_until ( const SimulationTimePoint< Duration > &  timeout_time)
inline

◆ sleep()

void simgrid::s4u::this_actor::sleep ( double  duration)
inline

◆ execute()

◆ recv()

void * simgrid::s4u::this_actor::recv ( MailboxPtr  chan)

Block the actor until it gets a message from the given mailbox.

See Comm for the full communication API (including non blocking communications).

Examples:
examples/s4u/actions-comm/s4u_actions-comm.cpp, examples/s4u/actor-create/s4u_actor-create.cpp, examples/s4u/app-masterworker/s4u_app-masterworker.cpp, and examples/s4u/app-token-ring/s4u_app-token-ring.cpp.

◆ irecv()

CommPtr simgrid::s4u::this_actor::irecv ( MailboxPtr  chan,
void **  data 
)

◆ send() [1/2]

void simgrid::s4u::this_actor::send ( MailboxPtr  chan,
void payload,
double  simulatedSize 
)

Block the actor until it delivers a message of the given simulated size to the given mailbox.

See Comm for the full communication API (including non blocking communications).

Examples:
examples/s4u/actions-comm/s4u_actions-comm.cpp, examples/s4u/actor-create/s4u_actor-create.cpp, examples/s4u/app-masterworker/s4u_app-masterworker.cpp, and examples/s4u/app-token-ring/s4u_app-token-ring.cpp.

◆ send() [2/2]

void simgrid::s4u::this_actor::send ( MailboxPtr  chan,
void payload,
double  simulatedSize,
double  timeout 
)

◆ isend()

CommPtr simgrid::s4u::this_actor::isend ( MailboxPtr  chan,
void payload,
double  simulatedSize 
)

◆ dsend()

void simgrid::s4u::this_actor::dsend ( MailboxPtr  chan,
void payload,
double  simulatedSize 
)

◆ pid()

aid_t simgrid::s4u::this_actor::pid ( )

Returns the actor ID of the current actor (same as pid).

◆ ppid()

aid_t simgrid::s4u::this_actor::ppid ( )

Returns the ancestor's actor ID of the current actor (same as ppid).

◆ name()

◆ host()

◆ suspend()

◆ resume()

void simgrid::s4u::this_actor::resume ( )

Resume the actor.

◆ isSuspended()

int simgrid::s4u::this_actor::isSuspended ( )

◆ kill()

void simgrid::s4u::this_actor::kill ( )

kill the actor.

Examples:
examples/s4u/actor-kill/s4u_actor-kill.cpp.

◆ onExit()

void simgrid::s4u::this_actor::onExit ( int_f_pvoid_pvoid_t  fun,
void data 
)

Add a function to the list of "on_exit" functions.

◆ migrate()

void simgrid::s4u::this_actor::migrate ( Host new_host)

Migrate the actor to a new host.

Examples:
examples/s4u/actor-migration/s4u_actor-migration.cpp.