2004-01-25 04:51:49 +03:00
|
|
|
/*
|
|
|
|
* $HEADERS$
|
|
|
|
*/
|
|
|
|
#include "lam_config.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include "mpi.h"
|
|
|
|
#include "mpi/interface/c/bindings.h"
|
2004-03-16 01:14:08 +03:00
|
|
|
#include "mpi/group/group.h"
|
2004-01-25 04:51:49 +03:00
|
|
|
|
|
|
|
#if LAM_HAVE_WEAK_SYMBOLS && LAM_PROFILING_DEFINES
|
|
|
|
#pragma weak MPI_Group_free = PMPI_Group_free
|
|
|
|
#endif
|
|
|
|
|
2004-03-16 01:14:08 +03:00
|
|
|
int MPI_Group_free(MPI_Group *group)
|
|
|
|
{
|
|
|
|
/* local variables */
|
|
|
|
int proc;
|
|
|
|
lam_group_t *l_group;
|
|
|
|
|
|
|
|
/* check to make sure we don't free GROUP_EMPTY or GROUP_NULL */
|
|
|
|
if( MPI_PARAM_CHECK ) {
|
|
|
|
if( (MPI_GROUP_NULL == group) || (MPI_GROUP_EMPTY == group ) ) {
|
|
|
|
return MPI_ERR_GROUP;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
l_group=(lam_group_t *)group;
|
|
|
|
|
|
|
|
/* decrement proc reference count */
|
|
|
|
for(proc=0 ; proc < l_group->grp_proc_count ; proc++ ) {
|
|
|
|
OBJ_RELEASE(l_group->grp_proc_pointers[proc]);
|
|
|
|
}
|
|
|
|
|
|
|
|
OBJ_RELEASE(group);
|
2004-01-25 04:51:49 +03:00
|
|
|
return MPI_SUCCESS;
|
|
|
|
}
|