X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c6bbeb1829c36ff45b43ab25f9d8d3f53f554d98..8fb62dc5a69cd10bc48dae3c6e7ecf54b11ba378:/src/smpi/mpi/smpi_comm.cpp diff --git a/src/smpi/mpi/smpi_comm.cpp b/src/smpi/mpi/smpi_comm.cpp index ac061c0115..7562d231e2 100644 --- a/src/smpi/mpi/smpi_comm.cpp +++ b/src/smpi/mpi/smpi_comm.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2020. 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. */ @@ -28,9 +28,9 @@ namespace smpi{ std::unordered_map Comm::keyvals_; int Comm::keyval_id_=0; -Comm::Comm(MPI_Group group, MPI_Topology topo, int smp, int in_id) : group_(group), topo_(topo),is_smp_comm_(smp), id_(in_id) +Comm::Comm(MPI_Group group, MPI_Topology topo, bool smp, int in_id) + : group_(group), topo_(topo), is_smp_comm_(smp), id_(in_id) { - errhandler_ = MPI_ERRORS_ARE_FATAL; errhandler_->ref(); //First creation of comm is done before SIMIX_run, so only do comms for others if(in_id==MPI_UNDEFINED && smp==0 && this->rank()!=MPI_UNDEFINED ){ @@ -203,19 +203,22 @@ MPI_Comm Comm::get_intra_comm(){ else return intra_comm_; } -int Comm::is_uniform(){ +bool Comm::is_uniform() +{ if (this == MPI_COMM_UNINITIALIZED) return smpi_process()->comm_world()->is_uniform(); - return is_uniform_; + return is_uniform_ != 0; } -int Comm::is_blocked(){ +bool Comm::is_blocked() +{ if (this == MPI_COMM_UNINITIALIZED) return smpi_process()->comm_world()->is_blocked(); - return is_blocked_; + return is_blocked_ != 0; } -int Comm::is_smp_comm(){ +bool Comm::is_smp_comm() +{ if (this == MPI_COMM_UNINITIALIZED) return smpi_process()->comm_world()->is_smp_comm(); return is_smp_comm_; @@ -457,7 +460,7 @@ void Comm::init_smp(){ break; } } - if(is_uniform==0 && this->is_uniform()!=0){ + if (is_uniform == 0 && this->is_uniform()) { non_uniform_map_ = non_uniform_map; }else{ xbt_free(non_uniform_map); @@ -568,7 +571,7 @@ void Comm::set_errhandler(MPI_Errhandler errhandler) errhandler_->ref(); } -MPI_Comm Comm::split_type(int type, int /*key*/, MPI_Info) +MPI_Comm Comm::split_type(int type, int /*key*/, const Info*) { //MPI_UNDEFINED can be given to some nodes... but we need them to still perform the smp part which is collective if(type != MPI_COMM_TYPE_SHARED && type != MPI_UNDEFINED){