1
1

Merge pull request #977 from hjelmn/ompi_win_free

win: free windows in ompi_win_finalize
Этот коммит содержится в:
Nathan Hjelm 2015-10-06 10:11:28 -06:00
родитель 81757d411a d7205f90f1
Коммит c124fd4a0b

Просмотреть файл

@ -35,6 +35,7 @@
#include "ompi/mca/osc/base/base.h"
#include "ompi/mca/osc/osc.h"
#include "ompi/runtime/params.h"
/*
* Table for Fortran <-> C communicator handle conversion. Note that
@ -88,10 +89,29 @@ ompi_win_init(void)
return OMPI_SUCCESS;
}
int
ompi_win_finalize(void)
static void ompi_win_dump (ompi_win_t *win)
{
opal_output(0, "Dumping information for window: %s\n", win->w_name);
opal_output(0," Fortran window handle: %d, window size: %d\n",
win->w_f_to_c_index, ompi_group_size (win->w_group));
}
int ompi_win_finalize(void)
{
size_t size = opal_pointer_array_get_size (&ompi_mpi_windows);
/* start at 1 to skip win null */
for (size_t i = 1 ; i < size ; ++i) {
ompi_win_t *win =
(ompi_win_t *) opal_pointer_array_get_item (&ompi_mpi_windows, i);
if (NULL != win) {
if (ompi_debug_show_handle_leaks && !ompi_win_invalid(win)){
opal_output(0,"WARNING: MPI_Win still allocated in MPI_Finalize\n");
ompi_win_dump (win);
}
ompi_win_free (win);
}
}
OBJ_DESTRUCT(&ompi_mpi_win_null.win);
OBJ_DESTRUCT(&ompi_mpi_windows);
OBJ_RELEASE(ompi_win_accumulate_ops);