From 905e26b959375a249abcfdf1599f6178fe031f44 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Mon, 1 Aug 2016 00:04:39 +0200 Subject: [PATCH 1/1] kill 3 more functions around processes - simcall_process_get_PID, simcall_process_get_PPID, SIMIX_process_get_PPID - SIMIX_process_get_PID() is still mandatory to the C parts of SMPI --- include/simgrid/simix.h | 2 -- src/msg/msg_process.cpp | 8 +++----- src/s4u/s4u_actor.cpp | 4 ++-- src/simix/libsmx.cpp | 22 ---------------------- src/simix/smx_process.cpp | 30 +++++++++++------------------- src/simix/smx_process_private.h | 1 - src/simix/smx_synchro.cpp | 4 ++-- src/smpi/smpi_comm.cpp | 4 ++-- 8 files changed, 20 insertions(+), 55 deletions(-) diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index d28bcd87a9..4d766f254f 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -301,8 +301,6 @@ XBT_PUBLIC(int) simcall_process_count(void); XBT_PUBLIC(void *) simcall_process_get_data(smx_process_t process); XBT_PUBLIC(void) simcall_process_set_data(smx_process_t process, void *data); XBT_PUBLIC(void) simcall_process_set_host(smx_process_t process, sg_host_t dest); -XBT_PUBLIC(int) simcall_process_get_PID(smx_process_t process); -XBT_PUBLIC(int) simcall_process_get_PPID(smx_process_t process); XBT_PUBLIC(int) simcall_process_is_suspended(smx_process_t process); XBT_PUBLIC(xbt_dict_t) simcall_process_get_properties(smx_process_t host); XBT_PUBLIC(void) simcall_process_set_kill_time(smx_process_t process, double kill_time); diff --git a/src/msg/msg_process.cpp b/src/msg/msg_process.cpp index d68bad5f40..0a2d2a9448 100644 --- a/src/msg/msg_process.cpp +++ b/src/msg/msg_process.cpp @@ -363,10 +363,9 @@ int MSG_process_get_PID(msg_process_t process) { /* Do not raise an exception here: this function is called by the logs * and the exceptions, so it would be called back again and again */ - if (process == nullptr) { + if (process == nullptr) return 0; - } - return simcall_process_get_PID(process); + return process->pid; } /** \ingroup m_process_management @@ -377,8 +376,7 @@ int MSG_process_get_PID(msg_process_t process) */ int MSG_process_get_PPID(msg_process_t process) { - xbt_assert(process != nullptr, "Invalid parameter: First argument must not be nullptr"); - return simcall_process_get_PPID(process); + return process->ppid; } /** \ingroup m_process_management diff --git a/src/s4u/s4u_actor.cpp b/src/s4u/s4u_actor.cpp index 5ea9f88b17..68f66fd416 100644 --- a/src/s4u/s4u_actor.cpp +++ b/src/s4u/s4u_actor.cpp @@ -70,7 +70,7 @@ simgrid::xbt::string Actor::getName() { } int Actor::getPid(){ - return simcall_process_get_PID(pimpl_); + return pimpl_->pid; } void Actor::setKillTime(double time) { @@ -154,7 +154,7 @@ void send(Mailbox &chan, void *payload, size_t simulatedSize) { } int getPid() { - return simcall_process_get_PID(SIMIX_process_self()); + return SIMIX_process_self()->pid; } } diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 7b69dee748..4d68d3d7d0 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -444,28 +444,6 @@ int simcall_process_count(void) return simgrid::simix::kernelImmediate(SIMIX_process_count); } -/** - * \ingroup simix_process_management - * \brief Return the PID of a #smx_process_t. - * \param process a SIMIX process - * \return the PID of this process - */ -int simcall_process_get_PID(smx_process_t process) -{ - return SIMIX_process_get_PID(process); -} - -/** - * \ingroup simix_process_management - * \brief Return the parent PID of a #smx_process_t. - * \param process a SIMIX process - * \return the PID of this process parenrt - */ -int simcall_process_get_PPID(smx_process_t process) -{ - return SIMIX_process_get_PPID(process); -} - /** * \ingroup simix_process_management * \brief Return the user data of a #smx_process_t. diff --git a/src/simix/smx_process.cpp b/src/simix/smx_process.cpp index 4e4454a6af..9d23a075aa 100644 --- a/src/simix/smx_process.cpp +++ b/src/simix/smx_process.cpp @@ -273,13 +273,12 @@ smx_process_t SIMIX_process_create( /* Initiliaze data segment to default value */ SIMIX_segment_index_set(process, -1); - if (parent_process != nullptr) { - process->ppid = SIMIX_process_get_PID(parent_process); - /* SMPI process have their own data segment and - each other inherit from their father */ + if (parent_process != nullptr) { + process->ppid = parent_process->pid; + /* SMPI process have their own data segment and each other inherit from their father */ #if HAVE_SMPI - if(smpi_privatize_global_variables){ - if( parent_process->pid != 0){ + if( smpi_privatize_global_variables) { + if (parent_process->pid != 0) { SIMIX_segment_index_set(process, parent_process->segment_index); } else { SIMIX_segment_index_set(process, process->pid - 1); @@ -358,12 +357,11 @@ smx_process_t SIMIX_process_attach( /* Initiliaze data segment to default value */ SIMIX_segment_index_set(process, -1); if (parent_process != nullptr) { - process->ppid = SIMIX_process_get_PID(parent_process); - /* SMPI process have their own data segment and - each other inherit from their father */ + process->ppid = parent_process->pid; + /* SMPI process have their own data segment and each other inherit from their father */ #if HAVE_SMPI - if(smpi_privatize_global_variables){ - if(parent_process->pid != 0){ + if (smpi_privatize_global_variables) { + if (parent_process->pid != 0) { SIMIX_segment_index_set(process, parent_process->segment_index); } else { SIMIX_segment_index_set(process, process->pid - 1); @@ -676,20 +674,14 @@ int SIMIX_process_count() return xbt_swag_size(simix_global->process_list); } -int SIMIX_process_get_PID(smx_process_t self){ +int SIMIX_process_get_PID(smx_process_t self) +{ if (self == nullptr) return 0; else return self->pid; } -int SIMIX_process_get_PPID(smx_process_t self){ - if (self == nullptr) - return 0; - else - return self->ppid; -} - void* SIMIX_process_self_get_data() { smx_process_t self = SIMIX_process_self(); diff --git a/src/simix/smx_process_private.h b/src/simix/smx_process_private.h index 195ed7fa89..bcfe57a018 100644 --- a/src/simix/smx_process_private.h +++ b/src/simix/smx_process_private.h @@ -130,7 +130,6 @@ XBT_PRIVATE void SIMIX_process_change_host(smx_process_t process, XBT_PRIVATE smx_synchro_t SIMIX_process_suspend(smx_process_t process, smx_process_t issuer); XBT_PRIVATE void SIMIX_process_resume(smx_process_t process, smx_process_t issuer); XBT_PRIVATE int SIMIX_process_get_PID(smx_process_t self); -XBT_PRIVATE int SIMIX_process_get_PPID(smx_process_t self); XBT_PRIVATE void* SIMIX_process_get_data(smx_process_t process); XBT_PRIVATE void SIMIX_process_set_data(smx_process_t process, void *data); XBT_PRIVATE smx_process_t SIMIX_process_get_by_name(const char* name); diff --git a/src/simix/smx_synchro.cpp b/src/simix/smx_synchro.cpp index 0db61fd5f3..93120cb30f 100644 --- a/src/simix/smx_synchro.cpp +++ b/src/simix/smx_synchro.cpp @@ -167,8 +167,8 @@ void Mutex::unlock(smx_process_t issuer) /* If the mutex is not owned by the issuer, that's not good */ if (issuer != this->owner) - THROWF(mismatch_error, 0, "Cannot release that mutex: it was locked by %s (pid:%d), not by you.", - this->owner->name.c_str(),SIMIX_process_get_PID(this->owner)); + THROWF(mismatch_error, 0, "Cannot release that mutex: it was locked by %s (pid:%ld), not by you.", + this->owner->name.c_str(),this->owner->pid); if (xbt_swag_size(this->sleeping) > 0) { /*process to wake up */ diff --git a/src/smpi/smpi_comm.cpp b/src/smpi/smpi_comm.cpp index d91a5dfaec..9029fde22e 100644 --- a/src/smpi/smpi_comm.cpp +++ b/src/smpi/smpi_comm.cpp @@ -375,7 +375,7 @@ void smpi_comm_init_smp(MPI_Comm comm){ int min_index=INT_MAX;//the minimum index will be the leader smx_process_t process = nullptr; xbt_swag_foreach(process, process_list) { - int index = SIMIX_process_get_PID(process) -1; + int index = process->pid -1; if(smpi_group_rank(smpi_comm_group(comm), index)!=MPI_UNDEFINED){ intra_comm_size++; @@ -390,7 +390,7 @@ void smpi_comm_init_smp(MPI_Comm comm){ i=0; process = nullptr; xbt_swag_foreach(process, process_list) { - int index = SIMIX_process_get_PID(process) -1; + int index = process->pid -1; if(smpi_group_rank(smpi_comm_group(comm), index)!=MPI_UNDEFINED){ smpi_group_set_mapping(group_intra, index, i); i++; -- 2.20.1