X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d84590a56d4bbb4ade4416d4bd7f19acdb7dd621..465dac153770a28f3a334705a06a1ee7a457c965:/src/simix/ActorImpl.cpp diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index 4b16464033..353b70d029 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-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. */ @@ -23,7 +23,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_process, simix, "Logging specific to SIMIX (process)"); -unsigned long simix_process_maxpid = 0; +static unsigned long simix_process_maxpid = 0; /** * @brief Returns the current agent. @@ -36,7 +36,7 @@ smx_actor_t SIMIX_process_self() { smx_context_t self_context = simgrid::kernel::context::Context::self(); - return (self_context != nullptr) ? self_context->process() : nullptr; + return (self_context != nullptr) ? self_context->get_actor() : nullptr; } /** @@ -301,8 +301,6 @@ void create_maestro(simgrid::simix::ActorCode code) if (not code) { maestro->context_ = SIMIX_context_new(simgrid::simix::ActorCode(), nullptr, maestro); } else { - if (not simix_global) - xbt_die("simix is not initialized, please call MSG_init first"); maestro->context_ = simix_global->context_factory->create_maestro(code, maestro); } @@ -369,9 +367,8 @@ smx_actor_t SIMIX_process_create(std::string name, simgrid::simix::ActorCode cod simix_global->process_to_run.push_back(process); intrusive_ptr_add_ref(process); - /* The onCreation() signal must be delayed until there, where the pid and everything is set */ - simgrid::s4u::ActorPtr tmp = process->iface(); // Passing this directly to onCreation will lead to crashes - simgrid::s4u::Actor::on_creation(tmp); + /* The on_creation() signal must be delayed until there, where the pid and everything is set */ + simgrid::s4u::Actor::on_creation(process->iface()); return process; } @@ -433,7 +430,7 @@ void SIMIX_process_detach() if (context == nullptr) xbt_die("Not a suitable context"); - SIMIX_process_cleanup(context->process()); + SIMIX_process_cleanup(context->get_actor()); context->attach_stop(); } @@ -472,8 +469,8 @@ void SIMIX_process_kill(smx_actor_t actor, smx_actor_t issuer) return; } - XBT_DEBUG("Actor '%s'@%s is killing actor '%s'@%s", issuer->get_cname(), - (issuer->host_ == nullptr ? "(null)" : issuer->host_->get_cname()), actor->get_cname(), + XBT_DEBUG("Actor '%s'@%s is killing actor '%s'@%s", issuer == nullptr ? "(null)" : issuer->get_cname(), + (issuer == nullptr || issuer->host_ == nullptr ? "(null)" : issuer->host_->get_cname()), actor->get_cname(), actor->host_->get_cname()); actor->context_->iwannadie = true;