X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dadb0fce9eec339e90886793346c123625f1deb4..d944af9fe1c81b8b631988ca6310f3b055a4ea00:/src/msg/msg_process.cpp diff --git a/src/msg/msg_process.cpp b/src/msg/msg_process.cpp index e7c6961eee..dd37f44d0f 100644 --- a/src/msg/msg_process.cpp +++ b/src/msg/msg_process.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -13,33 +13,10 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_process, msg, "Logging specific to MSG (proc std::string instr_pid(msg_process_t proc) { - return std::string(proc->get_cname()) + "-" + std::to_string(proc->get_pid()); + return std::string(proc->get_name()) + "-" + std::to_string(proc->get_pid()); } /******************************** Process ************************************/ -/** - * @brief Cleans the MSG data of an actor - * @param smx_actor a SIMIX actor - */ -void MSG_process_cleanup_from_SIMIX(smx_actor_t smx_actor) -{ - // free the data if a function was provided - void* userdata = smx_actor->get_user_data(); - if (userdata && msg_global->process_data_cleanup) { - msg_global->process_data_cleanup(userdata); - } - - SIMIX_process_cleanup(smx_actor); -} - -/* This function creates a MSG process. It has the prototype enforced by SIMIX_function_register_process_create */ -smx_actor_t MSG_process_create_from_SIMIX(std::string name, simgrid::simix::ActorCode code, void* data, sg_host_t host, - std::unordered_map* properties, - smx_actor_t /*parent_process*/) -{ - msg_process_t p = MSG_process_create_from_stdfunc(name, std::move(code), data, host, properties); - return p == nullptr ? nullptr : p->get_impl(); -} /** @brief Creates and runs a new #msg_process_t. * @@ -90,6 +67,8 @@ msg_process_t MSG_process_create_with_arguments(const char *name, xbt_main_func_ msg_process_t MSG_process_create_with_environment(const char *name, xbt_main_func_t code, void *data, msg_host_t host, int argc, char **argv, xbt_dict_t properties) { + xbt_assert(host != nullptr, "Invalid parameters: host param must not be nullptr"); + simgrid::simix::ActorCode function; if (code) function = simgrid::xbt::wrap_main(code, argc, static_cast(argv)); @@ -102,19 +81,10 @@ msg_process_t MSG_process_create_with_environment(const char *name, xbt_main_fun props[key] = value; xbt_dict_free(&properties); - msg_process_t res = MSG_process_create_from_stdfunc(name, std::move(function), data, host, &props); + smx_actor_t process = simcall_process_create(name, std::move(function), data, host, &props); for (int i = 0; i != argc; ++i) xbt_free(argv[i]); xbt_free(argv); - return res; -} - -msg_process_t MSG_process_create_from_stdfunc(std::string name, simgrid::simix::ActorCode code, void* data, - msg_host_t host, std::unordered_map* properties) -{ - xbt_assert(code != nullptr && host != nullptr, "Invalid parameters: host and code params must not be nullptr"); - - smx_actor_t process = simcall_process_create(name, std::move(code), data, host, properties); if (process == nullptr) return nullptr; @@ -216,7 +186,7 @@ int MSG_process_get_number() int MSG_process_self_PID() { smx_actor_t self = SIMIX_process_self(); - return self == nullptr ? 0 : self->pid_; + return self == nullptr ? 0 : self->get_pid(); } /** @brief Return the PPID of the current process.