#include <xbt/ex.h>
#include <xbt/parmap.h>
#ifdef __cplusplus
-#include <map>
+#include <functional>
+#include <unordered_map>
#endif
/* ******************************** Host ************************************ */
XBT_PUBLIC void SIMIX_maestro_create(void (*code)(void*), void* data);
#ifdef __cplusplus
XBT_PUBLIC smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostname,
- std::map<std::string, std::string>* properties, smx_actor_t parent_process);
+ std::unordered_map<std::string, std::string>* properties,
+ smx_actor_t parent_process);
#endif
XBT_PUBLIC void SIMIX_process_detach();
SG_END_DECL()
+#ifdef __cplusplus
+XBT_PUBLIC void SIMIX_process_on_exit(smx_actor_t process, std::function<void(int, void*)> fun, void* data);
+#endif
+
/****************************** Communication *********************************/
XBT_PUBLIC void SIMIX_comm_set_copy_data_callback(void (*callback)(smx_activity_t, void*, size_t));
XBT_PUBLIC void SIMIX_comm_copy_pointer_callback(smx_activity_t comm, void* buff, size_t buff_size);
/* Constructor and Destructor */
#ifdef __cplusplus
XBT_PUBLIC smx_actor_t simcall_process_create(const char* name, xbt_main_func_t code, void* data, sg_host_t host,
- int argc, char** argv, std::map<std::string, std::string>* properties);
+ int argc, char** argv,
+ std::unordered_map<std::string, std::string>* properties);
#endif
XBT_PUBLIC void SIMIX_process_throw(smx_actor_t process, xbt_errcat_t cat, int value, const char* mesg);