}
#define CREATE_MPI_OP(name, func) \
- static SMPI_Op mpi_##name (&(func) /* func */, true ); \
+ static SMPI_Op mpi_##name (&(func) /* func */, true, true ); \
MPI_Op name = &mpi_##name;
CREATE_MPI_OP(MPI_MAX, max_func);
void Op::unref(MPI_Op* op){
if((*op)!=MPI_OP_NULL){
(*op)->refcount_--;
- if((*op)->refcount_==0)
+ if((*op)->refcount_==0 && (*op)->predefined_==false)
delete(*op);
}
}