X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d50ac0d02476601f9fe8ec760dce685d39d61bc7..22099d0593f8067506657185076e10cbeafe5760:/src/smpi/smpi_rma.c diff --git a/src/smpi/smpi_rma.c b/src/smpi/smpi_rma.c index 6c77070a31..dc311a5abe 100644 --- a/src/smpi/smpi_rma.c +++ b/src/smpi/smpi_rma.c @@ -23,6 +23,7 @@ typedef struct s_smpi_mpi_win{ xbt_dynar_t requests; xbt_bar_t bar; MPI_Win* connected_wins; + char* name; } s_smpi_mpi_win_t; @@ -41,6 +42,7 @@ MPI_Win smpi_mpi_win_create( void *base, MPI_Aint size, int disp_unit, MPI_Info win->assert = 0; //win->info = info; win->comm = comm; + win->name = NULL; win->requests = xbt_dynar_new(sizeof(MPI_Request), NULL); win->connected_wins = xbt_malloc0(comm_size*sizeof(MPI_Win)); win->connected_wins[rank] = win; @@ -74,11 +76,23 @@ int smpi_mpi_win_free( MPI_Win* win){ xbt_barrier_wait((*win)->bar); xbt_dynar_free(&(*win)->requests); xbt_free((*win)->connected_wins); + if ((*win)->name != NULL){ + xbt_free((*win)->name); + } xbt_free(*win); win = MPI_WIN_NULL; return MPI_SUCCESS; } +void smpi_mpi_win_get_name(MPI_Win win, char* name, int* length){ + *length = strlen(win->name); + strcpy(name, win->name); +} + +void smpi_mpi_win_set_name(MPI_Win win, char* name){ + win->name = strdup(name);; +} + int smpi_mpi_win_fence( int assert, MPI_Win win){