if (barrier != nullptr) // don't overwrite the current one if the instance has none
finalization_barrier_ = barrier;
- static_cast<simgrid::msg::ActorExt*>(actor_->get_impl()->get_user_data())->data = this;
-
if (*argc > 3) {
memmove(&(*argv)[0], &(*argv)[2], sizeof(char*) * (*argc - 2));
(*argv)[(*argc) - 1] = nullptr;
/* 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. */
-#include "smpi_host.hpp"
#include "mc/mc.h"
#include "simgrid/s4u/Engine.hpp"
#include "smpi_coll.hpp"
#include "smpi_f2c.hpp"
-#include "src/msg/msg_private.hpp"
+#include "smpi_host.hpp"
+#include "src/kernel/activity/CommImpl.hpp"
#include "src/simix/smx_private.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
#include "xbt/config.hpp"
-#include "src/smpi/include/smpi_actor.hpp"
#include <cfloat> /* DBL_MAX */
#include <dlfcn.h>
#include <fcntl.h>
simgrid::smpi::ActorExt* smpi_process()
{
ActorPtr me = Actor::self();
+
if (me == nullptr) // This happens sometimes (eg, when linking against NS3 because it pulls openMPI...)
return nullptr;
- simgrid::msg::ActorExt* msgExt = static_cast<simgrid::msg::ActorExt*>(me->get_impl()->get_user_data());
- return static_cast<simgrid::smpi::ActorExt*>(msgExt->data);
+
+ return process_data.at(me);
}
simgrid::smpi::ActorExt* smpi_process_remote(ActorPtr actor)
}
TRACE_global_init();
-
SIMIX_global_init(&argc, argv);
- MSG_init(&argc, argv); // FIXME Remove this MSG call. Once it's removed, we can remove the msg header include as well
SMPI_switch_data_segment = &smpi_switch_data_segment;