X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e81b0628a697bddad304e69a82d898299ff9fe40..455435b8a7cc8d84037aa66104a73d4760d9666f:/include/simgrid/simix.hpp diff --git a/include/simgrid/simix.hpp b/include/simgrid/simix.hpp index fe3d4fd611..b6b9a1cecf 100644 --- a/include/simgrid/simix.hpp +++ b/include/simgrid/simix.hpp @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -86,6 +87,11 @@ typedef std::function args)> ActorCodeFactory XBT_PUBLIC(void) registerFunction(const char* name, ActorCodeFactory factory); +/** These functions will be called when we detect a deadlock: any remaining process is locked on an action + * + * If these functions manage to unlock some of the processes, then the deadlock will be avoided. + */ +extern simgrid::xbt::signal onDeadlock; } } @@ -104,7 +110,7 @@ typedef smx_actor_t (*smx_creation_func_t) ( /* name */ const char*, std::function code, /* userdata */ void*, - /* hostname */ const char*, + /* hostname */ sg_host_t, /* kill_time */ double, /* props */ xbt_dict_t, /* auto_restart */ int, @@ -116,7 +122,7 @@ XBT_PUBLIC(void) SIMIX_function_register_process_create(smx_creation_func_t func XBT_PUBLIC(smx_actor_t) simcall_process_create(const char *name, std::function code, void *data, - const char *hostname, + sg_host_t host, double kill_time, xbt_dict_t properties, int auto_restart); @@ -124,13 +130,13 @@ XBT_PUBLIC(smx_actor_t) simcall_process_create(const char *name, XBT_PUBLIC(smx_timer_t) SIMIX_timer_set(double date, simgrid::xbt::Task callback); template inline -XBT_PUBLIC(smx_timer_t) SIMIX_timer_set(double date, F callback) +smx_timer_t SIMIX_timer_set(double date, F callback) { return SIMIX_timer_set(date, simgrid::xbt::Task(std::move(callback))); } template inline -XBT_PUBLIC(smx_timer_t) SIMIX_timer_set(double date, R(*callback)(T*), T* arg) +smx_timer_t SIMIX_timer_set(double date, R(*callback)(T*), T* arg) { return SIMIX_timer_set(date, [=](){ callback(arg); }); }