foreach (example actions-comm actions-storage
- actor-create actor-daemon actor-kill actor-migration actor-suspend actor-priority
- actor-create actor-daemon actor-execute actor-kill actor-lifetime actor-migration actor-suspend
++ actor-create actor-daemon actor-kill actor-migration actor-suspend
++ actor-create actor-daemon actor-execute actor-kill actor-lifetime actor-migration actor-suspend actor-priority
app-masterworker app-pingpong app-token-ring
async-wait async-waitany async-waitall
plugin-hostload io mutex)
set(examples_src ${examples_src} PARENT_SCOPE)
set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/s4u-app-bittorrent.tesh
${CMAKE_CURRENT_SOURCE_DIR}/dht-chord/s4u-dht-chord.tesh
+ ${CMAKE_CURRENT_SOURCE_DIR}/actor-priority/s4u-actor-priority.tesh
+ ${CMAKE_CURRENT_SOURCE_DIR}/actor-lifetime/s4u-actor-lifetime.tesh
${CMAKE_CURRENT_SOURCE_DIR}/async-wait/s4u-async-wait.tesh
${CMAKE_CURRENT_SOURCE_DIR}/async-waitany/s4u-async-waitany.tesh
- ${CMAKE_CURRENT_SOURCE_DIR}/async-waitall/s4u-async-waitall.tesh PARENT_SCOPE)
+ ${CMAKE_CURRENT_SOURCE_DIR}/async-waitall/s4u-async-waitall.tesh
+ ${CMAKE_CURRENT_SOURCE_DIR}/actor-execute/s4u-actor-execute.tesh
+ PARENT_SCOPE)
set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/actions-comm/s4u-actions-comm-split_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/actions-comm/s4u-actions-comm_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/actions-storage/s4u-actions-storage_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/README.doc PARENT_SCOPE)
foreach(example actions-comm actions-storage
- actor-create actor-daemon actor-kill actor-migration actor-suspend
+ actor-create actor-daemon actor-execute actor-kill actor-lifetime actor-migration actor-suspend
app-bittorrent app-masterworker app-pingpong app-token-ring
- async-wait async-waitall async-waitany
+ async-wait async-waitall async-waitany actor-priority
dht-chord plugin-hostload io mutex)
ADD_TESH_FACTORIES(s4u-${example} "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_CURRENT_BINARY_DIR}/${example} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/${example} s4u-${example}.tesh)
endforeach()
{
auto seconds = std::chrono::duration_cast<SimulationClockDuration>(duration);
this_actor::sleep_for(seconds.count());
- }
- template<class Duration>
- inline void sleep_until(const SimulationTimePoint<Duration>& timeout_time)
- {
- auto timeout_native = std::chrono::time_point_cast<SimulationClockDuration>(timeout_time);
- this_actor::sleep_until(timeout_native.time_since_epoch().count());
- }
+ }
- XBT_ATTRIB_DEPRECATED_v320("Use sleep_for(): v3.20 will turn this warning into an error.") inline void sleep(
- double duration)
- {
- return sleep_for(duration);
- }
+ template <class Duration> inline void sleep_until(const SimulationTimePoint<Duration>& timeout_time)
+ {
+ auto timeout_native = std::chrono::time_point_cast<SimulationClockDuration>(timeout_time);
+ this_actor::sleep_until(timeout_native.time_since_epoch().count());
+ }
+
+ XBT_ATTRIB_DEPRECATED_v320("Use sleep_for(): v3.20 will turn this warning into an error.") inline void sleep(
+ double duration)
+ {
+ return sleep_for(duration);
+ }
- /** Block the actor, computing the given amount of flops */
- XBT_PUBLIC(void) execute(double flop);
+ /** Block the actor, computing the given amount of flops */
+ XBT_PUBLIC(void) execute(double flop);
-/** Block the actor until it gets a message from the given mailbox.
- *
- * See \ref Comm for the full communication API (including non blocking communications).
- */
-XBT_PUBLIC(void*)
-XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::get(): v3.20 will turn this warning into an error.") recv(MailboxPtr chan);
-XBT_PUBLIC(void*)
-XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::get(): v3.20 will turn this warning into an error.")
- recv(MailboxPtr chan, double timeout);
-XBT_PUBLIC(CommPtr)
-XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::recv_async(): v3.20 will turn this warning into an error.")
- irecv(MailboxPtr chan, void** data);
+ /** Block the actor, computing the given amount of flops and priority */
+ XBT_PUBLIC(void) execute(double flop, double priority);
-/** Block the actor until it delivers a message of the given simulated size to the given mailbox
- *
- * See \ref Comm for the full communication API (including non blocking communications).
-*/
-XBT_PUBLIC(void)
-XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::put(): v3.20 will turn this warning into an error.")
- send(MailboxPtr chan, void* payload, double simulatedSize); // 3.17
-XBT_PUBLIC(void)
-XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::put(): v3.20 will turn this warning into an error.")
- send(MailboxPtr chan, void* payload, double simulatedSize, double timeout); // 3.17
+ /** Block the actor until it gets a message from the given mailbox.
+ *
+ * See \ref Comm for the full communication API (including non blocking communications).
+ */
+ XBT_PUBLIC(void*)
+ XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::get(): v3.20 will turn this warning into an error.") recv(MailboxPtr chan);
+ XBT_PUBLIC(void*)
+ XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::get(): v3.20 will turn this warning into an error.")
+ recv(MailboxPtr chan, double timeout);
+ XBT_PUBLIC(CommPtr)
+ XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::recv_async(): v3.20 will turn this warning into an error.")
+ irecv(MailboxPtr chan, void** data);
+
+ /** Block the actor until it delivers a message of the given simulated size to the given mailbox
+ *
+ * See \ref Comm for the full communication API (including non blocking communications).
+ */
+ XBT_PUBLIC(void)
+ XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::put(): v3.20 will turn this warning into an error.")
+ send(MailboxPtr chan, void* payload, double simulatedSize); // 3.17
+ XBT_PUBLIC(void)
+ XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::put(): v3.20 will turn this warning into an error.")
+ send(MailboxPtr chan, void* payload, double simulatedSize, double timeout); // 3.17
- XBT_PUBLIC(CommPtr)
- XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::put_async(): v3.20 will turn this warning into an error.")
- isend(MailboxPtr chan, void* payload, double simulatedSize);
+ XBT_PUBLIC(CommPtr)
+ XBT_ATTRIB_DEPRECATED_v320("Use Mailbox::put_async(): v3.20 will turn this warning into an error.")
+ isend(MailboxPtr chan, void* payload, double simulatedSize);
- /** @brief Returns the actor ID of the current actor (same as pid). */
- XBT_PUBLIC(aid_t) getPid();
+ /** @brief Returns the actor ID of the current actor (same as pid). */
+ XBT_PUBLIC(aid_t) getPid();
- /** @brief Returns the ancestor's actor ID of the current actor (same as ppid). */
- XBT_PUBLIC(aid_t) getPpid();
+ /** @brief Returns the ancestor's actor ID of the current actor (same as ppid). */
+ XBT_PUBLIC(aid_t) getPpid();
- /** @brief Returns the name of the current actor. */
- XBT_PUBLIC(std::string) getName();
+ /** @brief Returns the name of the current actor. */
+ XBT_PUBLIC(std::string) getName();
- /** @brief Returns the name of the host on which the process is running. */
- XBT_PUBLIC(Host*) getHost();
+ /** @brief Returns the name of the current actor as a C string. */
+ XBT_PUBLIC(const char*) getCname();
- /** @brief Suspend the actor. */
- XBT_PUBLIC(void) suspend();
+ /** @brief Returns the name of the host on which the process is running. */
+ XBT_PUBLIC(Host*) getHost();
- /** @brief Resume the actor. */
- XBT_PUBLIC(void) resume();
+ /** @brief Suspend the actor. */
+ XBT_PUBLIC(void) suspend();
- XBT_PUBLIC(bool) isSuspended();
+ /** @brief Resume the actor. */
+ XBT_PUBLIC(void) resume();
- /** @brief kill the actor. */
- XBT_PUBLIC(void) kill();
+ XBT_PUBLIC(bool) isSuspended();
- /** @brief Add a function to the list of "on_exit" functions. */
- XBT_PUBLIC(void) onExit(int_f_pvoid_pvoid_t fun, void* data);
+ /** @brief kill the actor. */
+ XBT_PUBLIC(void) kill();
- /** @brief Migrate the actor to a new host. */
- XBT_PUBLIC(void) migrate(Host* new_host);
- };
+ /** @brief Add a function to the list of "on_exit" functions. */
+ XBT_PUBLIC(void) onExit(int_f_pvoid_pvoid_t fun, void* data);
+
+ /** @brief Migrate the actor to a new host. */
+ XBT_PUBLIC(void) migrate(Host* new_host);
+ }
/** @} */