X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/977ce74cee777641db27a02631b20bd3ac793e8b..b8df87e176f27b25534f27d7e240defa32ca35bc:/include/simgrid/s4u/Actor.hpp diff --git a/include/simgrid/s4u/Actor.hpp b/include/simgrid/s4u/Actor.hpp index 926cefb276..bcc4cc3986 100644 --- a/include/simgrid/s4u/Actor.hpp +++ b/include/simgrid/s4u/Actor.hpp @@ -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 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 inline void sleep_for(std::chrono::duration duration) @@ -403,10 +411,10 @@ template inline void sleep_until(const SimulationTimePoint