X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a394f0d7838fe3aa26e132c1d80a92d6aa6e6931..5ed37babb2fa9097abe82df299c0aa259ed84d5a:/src/smpi/bindings/smpi_f77_comm.cpp diff --git a/src/smpi/bindings/smpi_f77_comm.cpp b/src/smpi/bindings/smpi_f77_comm.cpp index 0113de442d..b3d9860778 100644 --- a/src/smpi/bindings/smpi_f77_comm.cpp +++ b/src/smpi/bindings/smpi_f77_comm.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2023. 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. */ @@ -38,8 +38,7 @@ void mpi_comm_create_(int* comm, int* group, int* newcomm, int* ierr) { } void mpi_comm_free_(int* comm, int* ierr) { - MPI_Comm tmp = simgrid::smpi::Comm::f2c(*comm); - if(tmp != MPI_COMM_WORLD && tmp != MPI_COMM_NULL) { + if (MPI_Comm tmp = simgrid::smpi::Comm::f2c(*comm); tmp != MPI_COMM_WORLD && tmp != MPI_COMM_NULL) { simgrid::smpi::Comm::destroy(tmp); simgrid::smpi::Comm::free_f(*comm); } @@ -91,7 +90,7 @@ void mpi_comm_delete_attr_ (int* comm, int* comm_keyval, int* ierr){ void mpi_comm_create_keyval_ (void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr){ smpi_copy_fn _copy_fn={nullptr,nullptr,nullptr,(*(int*)copy_fn) == 0 ? nullptr : reinterpret_cast(copy_fn),nullptr,nullptr}; smpi_delete_fn _delete_fn={nullptr,nullptr,nullptr,(*(int*)delete_fn) == 0 ? nullptr : reinterpret_cast(delete_fn),nullptr,nullptr}; - *ierr = simgrid::smpi::Keyval::keyval_create(_copy_fn, _delete_fn, keyval, extra_state); + *ierr = simgrid::smpi::Keyval::keyval_create(_copy_fn, _delete_fn, keyval, extra_state, true); } void mpi_comm_free_keyval_ (int* keyval, int* ierr) { @@ -192,9 +191,10 @@ void mpi_comm_call_errhandler_ (int* comm,int* errorcode, int* ierr){ *ierr = MPI_Comm_call_errhandler(simgrid::smpi::Comm::f2c(*comm), *errorcode); } -void mpi_comm_connect_ ( char *port_name, int* info, int* root, int* comm, int*newcomm, int* ierr){ +void mpi_comm_connect_(char* port_name, int* info, int* root, int* comm, int* newcomm, int* ierr) +{ MPI_Comm tmp; - *ierr = MPI_Comm_connect( port_name, simgrid::smpi::Info::f2c(*info), *root, simgrid::smpi::Comm::f2c(*comm), &tmp); + *ierr = MPI_Comm_connect(port_name, simgrid::smpi::Info::f2c(*info), *root, simgrid::smpi::Comm::f2c(*comm), &tmp); if(*ierr == MPI_SUCCESS) { *newcomm = tmp->c2f(); }