X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/10ceac5fd14fb0426b5c93bda85676a79b02d0be..91b3883142b769ef1fc0b7d460f78d2ae526bca2:/include/simgrid/simix.hpp diff --git a/include/simgrid/simix.hpp b/include/simgrid/simix.hpp index fe3d4fd611..7e0e9e3cd5 100644 --- a/include/simgrid/simix.hpp +++ b/include/simgrid/simix.hpp @@ -7,16 +7,10 @@ #ifndef SIMGRID_SIMIX_HPP #define SIMGRID_SIMIX_HPP -#include - -#include -#include -#include -#include - -#include +//#include #include #include +#include #include @@ -86,6 +80,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,33 +103,26 @@ typedef smx_actor_t (*smx_creation_func_t) ( /* name */ const char*, std::function code, /* userdata */ void*, - /* hostname */ const char*, - /* kill_time */ double, + /* hostname */ sg_host_t, /* props */ xbt_dict_t, - /* auto_restart */ int, /* parent_process */ smx_actor_t); extern "C" XBT_PUBLIC(void) SIMIX_function_register_process_create(smx_creation_func_t function); -XBT_PUBLIC(smx_actor_t) simcall_process_create(const char *name, - std::function code, - void *data, - const char *hostname, - double kill_time, - xbt_dict_t properties, - int auto_restart); +XBT_PUBLIC(smx_actor_t) +simcall_process_create(const char* name, std::function code, void* data, sg_host_t host, xbt_dict_t properties); 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); }); }