Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
give the application a chance to not enter the deadlocks
[simgrid.git] / include / simgrid / simix.hpp
index d4200a3..9b48240 100644 (file)
@@ -17,6 +17,7 @@
 #include <xbt/function_types.h>
 #include <xbt/future.hpp>
 #include <xbt/functional.hpp>
+#include <xbt/signal.hpp>
 
 #include <simgrid/simix.h>
 
@@ -86,6 +87,11 @@ typedef std::function<ActorCode(std::vector<std::string> 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<void(void)> onDeadlock;
 }
 }
 
@@ -100,7 +106,7 @@ XBT_PUBLIC(void) registerFunction(const char* name, ActorCodeFactory factory);
  * int argc, char **argv: parameters passed to code
  * xbt_dict_t pros: properties
  */
-typedef smx_process_t (*smx_creation_func_t) (
+typedef smx_actor_t (*smx_creation_func_t) (
                                       /* name */ const char*,
                                       std::function<void()> code,
                                       /* userdata */ void*,
@@ -108,12 +114,12 @@ typedef smx_process_t (*smx_creation_func_t) (
                                       /* kill_time */ double,
                                       /* props */ xbt_dict_t,
                                       /* auto_restart */ int,
-                                      /* parent_process */ smx_process_t);
+                                      /* parent_process */ smx_actor_t);
 
 extern "C"
 XBT_PUBLIC(void) SIMIX_function_register_process_create(smx_creation_func_t function);
 
-XBT_PUBLIC(smx_process_t) simcall_process_create(const char *name,
+XBT_PUBLIC(smx_actor_t) simcall_process_create(const char *name,
                                           std::function<void()> code,
                                           void *data,
                                           const char *hostname,