MPI_Aint size;
int disp_unit;
MPI_Comm comm;
- //MPI_Info info
+ MPI_Info info;
int assert;
xbt_dynar_t requests;
xbt_bar_t bar;
win->size = size;
win->disp_unit = disp_unit;
win->assert = 0;
- //win->info = info;
+ win->info = info;
+ if(info!=MPI_INFO_NULL)
+ info->refcount++;
win->comm = comm;
win->name = NULL;
win->requests = xbt_dynar_new(sizeof(MPI_Request), NULL);
if ((*win)->name != NULL){
xbt_free((*win)->name);
}
+ if((*win)->info!=MPI_INFO_NULL){
+ MPI_Info_free(&(*win)->info);
+ }
xbt_free(*win);
win = MPI_WIN_NULL;
return MPI_SUCCESS;
strcpy(name, win->name);
}
+void smpi_mpi_win_get_group(MPI_Win win, MPI_Group* group){
+ if(win->comm != MPI_COMM_NULL)
+ *group = smpi_comm_group(win->comm);
+}
+
void smpi_mpi_win_set_name(MPI_Win win, char* name){
win->name = strdup(name);;
}