11/**
22 Copyright (c) 2011 Mellanox Technologies. All rights reserved.
3+ Copyright (c) 2016 IBM Corporation. All rights reserved.
34 $COPYRIGHT$
45
56 Additional copyrights may follow
@@ -50,6 +51,32 @@ static void mca_coll_hcoll_module_clear(mca_coll_hcoll_module_t *hcoll_module)
5051 hcoll_module -> previous_iallgatherv = NULL ;
5152 hcoll_module -> previous_igatherv = NULL ;
5253 hcoll_module -> previous_ireduce = NULL ;
54+ hcoll_module -> previous_ialltoall = NULL ;
55+ hcoll_module -> previous_ialltoallv = NULL ;
56+
57+ hcoll_module -> previous_barrier_module = NULL ;
58+ hcoll_module -> previous_bcast_module = NULL ;
59+ hcoll_module -> previous_allreduce_module = NULL ;
60+ hcoll_module -> previous_reduce_module = NULL ;
61+ hcoll_module -> previous_allgather_module = NULL ;
62+ hcoll_module -> previous_allgatherv_module = NULL ;
63+ hcoll_module -> previous_gather_module = NULL ;
64+ hcoll_module -> previous_gatherv_module = NULL ;
65+ hcoll_module -> previous_alltoall_module = NULL ;
66+ hcoll_module -> previous_alltoallv_module = NULL ;
67+ hcoll_module -> previous_alltoallw_module = NULL ;
68+ hcoll_module -> previous_reduce_scatter_module = NULL ;
69+ hcoll_module -> previous_ibarrier_module = NULL ;
70+ hcoll_module -> previous_ibcast_module = NULL ;
71+ hcoll_module -> previous_iallreduce_module = NULL ;
72+ hcoll_module -> previous_ireduce_module = NULL ;
73+ hcoll_module -> previous_iallgather_module = NULL ;
74+ hcoll_module -> previous_iallgatherv_module = NULL ;
75+ hcoll_module -> previous_igatherv_module = NULL ;
76+ hcoll_module -> previous_ialltoall_module = NULL ;
77+ hcoll_module -> previous_ialltoallv_module = NULL ;
78+
79+
5380}
5481
5582static void mca_coll_hcoll_module_construct (mca_coll_hcoll_module_t * hcoll_module )
@@ -63,6 +90,8 @@ void mca_coll_hcoll_mem_release_cb(void *buf, size_t length,
6390 hcoll_mem_unmap (buf , length , cbdata , from_alloc );
6491}
6592
93+ #define OBJ_RELEASE_IF_NOT_NULL ( obj ) if( NULL != (obj) ) OBJ_RELEASE( obj );
94+
6695static void mca_coll_hcoll_module_destruct (mca_coll_hcoll_module_t * hcoll_module )
6796{
6897 int context_destroyed ;
@@ -79,25 +108,25 @@ static void mca_coll_hcoll_module_destruct(mca_coll_hcoll_module_t *hcoll_module
79108 destroy hcoll context*/
80109
81110 if (hcoll_module -> hcoll_context != NULL ){
82- OBJ_RELEASE (hcoll_module -> previous_barrier_module );
83- OBJ_RELEASE (hcoll_module -> previous_bcast_module );
84- OBJ_RELEASE (hcoll_module -> previous_allreduce_module );
85- OBJ_RELEASE (hcoll_module -> previous_allgather_module );
86- OBJ_RELEASE (hcoll_module -> previous_allgatherv_module );
87- OBJ_RELEASE (hcoll_module -> previous_gatherv_module );
88- OBJ_RELEASE (hcoll_module -> previous_alltoall_module );
89- OBJ_RELEASE (hcoll_module -> previous_alltoallv_module );
90- OBJ_RELEASE (hcoll_module -> previous_reduce_module );
91-
92- OBJ_RELEASE (hcoll_module -> previous_ibarrier_module );
93- OBJ_RELEASE (hcoll_module -> previous_ibcast_module );
94- OBJ_RELEASE (hcoll_module -> previous_iallreduce_module );
95- OBJ_RELEASE (hcoll_module -> previous_iallgather_module );
96- OBJ_RELEASE (hcoll_module -> previous_iallgatherv_module );
97- OBJ_RELEASE (hcoll_module -> previous_igatherv_module );
98- OBJ_RELEASE (hcoll_module -> previous_ialltoall_module );
99- OBJ_RELEASE (hcoll_module -> previous_ialltoallv_module );
100- OBJ_RELEASE (hcoll_module -> previous_ireduce_module );
111+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_barrier_module );
112+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_bcast_module );
113+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_allreduce_module );
114+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_allgather_module );
115+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_allgatherv_module );
116+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_gatherv_module );
117+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_alltoall_module );
118+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_alltoallv_module );
119+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_reduce_module );
120+
121+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_ibarrier_module );
122+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_ibcast_module );
123+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_iallreduce_module );
124+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_iallgather_module );
125+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_iallgatherv_module );
126+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_igatherv_module );
127+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_ialltoall_module );
128+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_ialltoallv_module );
129+ OBJ_RELEASE_IF_NOT_NULL (hcoll_module -> previous_ireduce_module );
101130
102131 /*
103132 OBJ_RELEASE(hcoll_module->previous_allgatherv_module);
0 commit comments