X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2d2995483b57463581ffdc4365fe1999ddc306c2..453bf51afcdaf0fbb9d3ae7344836f07643e462b:/src/simix/ActorImpl.cpp diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index aed56e718e..dfb2f05ab3 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -280,14 +280,14 @@ void SIMIX_maestro_create(void (*code)(void*), void* data) * * \return the process created */ -smx_actor_t SIMIX_process_create(const char* name, simgrid::simix::ActorCode code, void* data, simgrid::s4u::Host* host, +smx_actor_t SIMIX_process_create(std::string name, simgrid::simix::ActorCode code, void* data, simgrid::s4u::Host* host, std::unordered_map* properties, smx_actor_t parent_process) { - XBT_DEBUG("Start process %s on host '%s'", name, host->get_cname()); + XBT_DEBUG("Start process %s on host '%s'", name.c_str(), host->get_cname()); if (host->is_off()) { - XBT_WARN("Cannot launch process '%s' on failed host '%s'", name, host->get_cname()); + XBT_WARN("Cannot launch process '%s' on failed host '%s'", name.c_str(), host->get_cname()); return nullptr; } @@ -476,8 +476,9 @@ void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer) { if (i != process->waiting_synchro->simcalls_.end()) process->waiting_synchro->simcalls_.remove(&process->simcall); } else if (sleep != nullptr) { - SIMIX_process_sleep_destroy(process->waiting_synchro); - + if (sleep->surf_sleep) + sleep->surf_sleep->cancel(); + sleep->post(); } else if (raw != nullptr) { SIMIX_synchro_stop_waiting(process, &process->simcall); @@ -776,11 +777,9 @@ void SIMIX_process_on_exit(smx_actor_t process, std::function * \param argv second argument passed to \a code * \param properties the properties of the process */ -smx_actor_t simcall_process_create(const char* name, xbt_main_func_t code, void* data, sg_host_t host, int argc, +smx_actor_t simcall_process_create(std::string name, xbt_main_func_t code, void* data, sg_host_t host, int argc, char** argv, std::unordered_map* properties) { - if (name == nullptr) - name = ""; auto wrapped_code = simgrid::xbt::wrap_main(code, argc, argv); for (int i = 0; i != argc; ++i) xbt_free(argv[i]); @@ -789,11 +788,9 @@ smx_actor_t simcall_process_create(const char* name, xbt_main_func_t code, void* return res; } -smx_actor_t simcall_process_create(const char* name, simgrid::simix::ActorCode code, void* data, sg_host_t host, +smx_actor_t simcall_process_create(std::string name, simgrid::simix::ActorCode code, void* data, sg_host_t host, std::unordered_map* properties) { - if (name == nullptr) - name = ""; smx_actor_t self = SIMIX_process_self(); return simgrid::simix::simcall([name, code, data, host, properties, self] { return SIMIX_process_create(name, std::move(code), data, host, properties, self);