Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines with new year.
[simgrid.git] / include / simgrid / s4u / Actor.hpp
index 926cefb..bcc4cc3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2006-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. */
@@ -206,13 +206,9 @@ public:
   const char* get_cname() const;
   /** Retrieves the host on which that actor is running */
   s4u::Host* get_host();
-  /** Retrieves the PID of that actor
-   *
-   * aid_t is an alias for long */
+  /** Retrieves the actor ID of that actor */
   aid_t get_pid() const;
-  /** Retrieves the PPID of that actor
-   *
-   * aid_t is an alias for long */
+  /** Retrieves the actor ID of that actor's creator */
   aid_t get_ppid() const;
 
   /** Suspend an actor by suspending the task on which it was waiting for the completion. */
@@ -231,6 +227,10 @@ public:
 
   /** Add a function to the list of "on_exit" functions for the current actor. The on_exit functions are the functions
    * executed when your actor is killed. You should use them to free the data used by your actor.
+   *
+   * Please note that functions registered in this signal cannot do any simcall themselves. It means that they cannot
+   * send or receive messages, acquire or release mutexes, nor even modify a host property or something. Not only are
+   * blocking functions forbidden in this setting, but also modifications to the global state.
    */
   void on_exit(std::function<void(int, void*)> fun, void* data);
 
@@ -268,9 +268,16 @@ public:
 
   /** Wait for the actor to finish.
    *
-   * This blocks the calling actor until the actor on which we call join() is terminated
+   * Blocks the calling actor until the joined actor is terminated. If actor alice executes bob.join(), then alice is
+   * blocked until bob terminates.
    */
   void join();
+
+  /** Wait for the actor to finish, or for the timeout to elapse.
+   *
+   * Blocks the calling actor until the joined actor is terminated. If actor alice executes bob.join(), then alice is
+   * blocked until bob terminates.
+   */
   void join(double timeout);
   Actor* restart();
 
@@ -374,7 +381,7 @@ public:
     return res;
   }
   /** @deprecated See Actor::get_properties() */
-  XBT_ATTRIB_DEPRECATED_v323("Please use Actor::get_properties()") void setProperty(const char* key, const char* value)
+  XBT_ATTRIB_DEPRECATED_v323("Please use Actor::set_property()") void setProperty(const char* key, const char* value)
   {
     set_property(key, value);
   }
@@ -387,8 +394,9 @@ namespace this_actor {
 
 XBT_PUBLIC bool is_maestro();
 
-/** Block the actor sleeping for that amount of seconds (may throws hostFailure) */
+/** Block the actor sleeping for that amount of seconds (may throw hostFailure) */
 XBT_PUBLIC void sleep_for(double duration);
+/** Block the actor sleeping until the specified timestamp (may throw hostFailure) */
 XBT_PUBLIC void sleep_until(double timeout);
 
 template <class Rep, class Period> inline void sleep_for(std::chrono::duration<Rep, Period> duration)
@@ -403,10 +411,10 @@ template <class Duration> inline void sleep_until(const SimulationTimePoint<Dura
   this_actor::sleep_until(timeout_native.time_since_epoch().count());
 }
 
-/** Block the actor, computing the given amount of flops */
+/** Block the current actor, computing the given amount of flops */
 XBT_PUBLIC void execute(double flop);
 
-/** Block the actor, computing the given amount of flops at the given priority.
+/** Block the current actor, computing the given amount of flops at the given priority.
  *  An execution of priority 2 computes twice as fast as an execution at priority 1. */
 XBT_PUBLIC void execute(double flop, double priority);
 
@@ -485,7 +493,7 @@ XBT_ATTRIB_DEPRECATED_v325("Please use std::vectors as parameters") XBT_PUBLIC
 XBT_PUBLIC ExecPtr exec_init(double flops_amounts);
 XBT_PUBLIC ExecPtr exec_async(double flops_amounts);
 
-/** @brief Returns the actor ID of the current actor). */
+/** @brief Returns the actor ID of the current actor. */
 XBT_PUBLIC aid_t get_pid();
 
 /** @brief Returns the ancestor's actor ID of the current actor. */
@@ -499,13 +507,13 @@ XBT_PUBLIC const char* get_cname();
 /** @brief Returns the name of the host on which the actor is running. */
 XBT_PUBLIC Host* get_host();
 
-/** @brief Suspend the actor. */
+/** @brief Suspend the actor, that is blocked until resume()ed by another actor. */
 XBT_PUBLIC void suspend();
 
-/** @brief yield the actor. */
+/** @brief Yield the actor. */
 XBT_PUBLIC void yield();
 
-/** @brief Resume the actor. */
+/** @brief Resume the actor, that was suspend()ed previously. */
 XBT_PUBLIC void resume();
 
 XBT_PUBLIC bool is_suspended();