From e631173bebbd716f33286a72e58d50cf1b79057a Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 12 Apr 2017 00:09:06 +0200 Subject: [PATCH] SMPI: simplifies the process destruction --- src/smpi/smpi_pmpi.cpp | 2 -- src/smpi/smpi_process.cpp | 10 ++-------- src/smpi/smpi_process.hpp | 1 - src/smpi/smpi_replay.cpp | 1 - 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/smpi/smpi_pmpi.cpp b/src/smpi/smpi_pmpi.cpp index a35f124de6..85fd0e5dfe 100644 --- a/src/smpi/smpi_pmpi.cpp +++ b/src/smpi/smpi_pmpi.cpp @@ -57,7 +57,6 @@ int PMPI_Finalize() TRACE_smpi_collective_out(rank, -1, __FUNCTION__); TRACE_smpi_finalize(smpi_process()->index()); - smpi_process()->destroy(); return MPI_SUCCESS; } @@ -113,7 +112,6 @@ int PMPI_Is_thread_main(int *flag) int PMPI_Abort(MPI_Comm comm, int errorcode) { smpi_bench_end(); - smpi_process()->destroy(); // FIXME: should kill all processes in comm instead simcall_process_kill(SIMIX_process_self()); return MPI_SUCCESS; diff --git a/src/smpi/smpi_process.cpp b/src/smpi/smpi_process.cpp index c0f7c393ba..46918861b8 100644 --- a/src/smpi/smpi_process.cpp +++ b/src/smpi/smpi_process.cpp @@ -88,18 +88,12 @@ void Process::set_data(int index, int* argc, char*** argv) XBT_DEBUG("<%d> New process in the game: %p", index_, SIMIX_process_self()); } -void Process::destroy() +/** @brief Prepares the current process for termination. */ +void Process::finalize() { - if(smpi_privatize_global_variables == SMPI_PRIVATIZE_MMAP){ - smpi_switch_data_segment(index_); - } state_ = SMPI_FINALIZED; XBT_DEBUG("<%d> Process left the game", index_); -} -/** @brief Prepares the current process for termination. */ -void Process::finalize() -{ // This leads to an explosion of the search graph which cannot be reduced: if(MC_is_active() || MC_record_replay_is_active()) return; diff --git a/src/smpi/smpi_process.hpp b/src/smpi/smpi_process.hpp index 10d6bb6af1..173e3577dd 100644 --- a/src/smpi/smpi_process.hpp +++ b/src/smpi/smpi_process.hpp @@ -44,7 +44,6 @@ class Process { #endif public: explicit Process(int index); - void destroy(); void set_data(int index, int* argc, char*** argv); void finalize(); int finalized(); diff --git a/src/smpi/smpi_replay.cpp b/src/smpi/smpi_replay.cpp index f406072baa..ada1fecf98 100644 --- a/src/smpi/smpi_replay.cpp +++ b/src/smpi/smpi_replay.cpp @@ -988,6 +988,5 @@ void smpi_replay_run(int *argc, char***argv){ TRACE_smpi_collective_out(rank, -1, operation); TRACE_smpi_finalize(smpi_process()->index()); - smpi_process()->destroy(); xbt_free(operation); } -- 2.20.1