summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src/kmp_ftn_entry.h
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/runtime/src/kmp_ftn_entry.h')
-rw-r--r--openmp/runtime/src/kmp_ftn_entry.h18
1 files changed, 7 insertions, 11 deletions
diff --git a/openmp/runtime/src/kmp_ftn_entry.h b/openmp/runtime/src/kmp_ftn_entry.h
index 4089084de4c..13501e6dc42 100644
--- a/openmp/runtime/src/kmp_ftn_entry.h
+++ b/openmp/runtime/src/kmp_ftn_entry.h
@@ -279,15 +279,13 @@ FTN_CREATE_AFFINITY_MASK( void **mask )
//
// We really only NEED serial initialization here.
//
+ kmp_affin_mask_t* mask_internals;
if ( ! TCR_4(__kmp_init_middle) ) {
__kmp_middle_initialize();
}
- # if KMP_USE_HWLOC
- *mask = (hwloc_cpuset_t)hwloc_bitmap_alloc();
- # else
- *mask = kmpc_malloc( __kmp_affin_mask_size );
- # endif
- KMP_CPU_ZERO( (kmp_affin_mask_t *)(*mask) );
+ mask_internals = __kmp_affinity_dispatch->allocate_mask();
+ KMP_CPU_ZERO( mask_internals );
+ *mask = mask_internals;
#endif
}
@@ -300,6 +298,7 @@ FTN_DESTROY_AFFINITY_MASK( void **mask )
//
// We really only NEED serial initialization here.
//
+ kmp_affin_mask_t* mask_internals;
if ( ! TCR_4(__kmp_init_middle) ) {
__kmp_middle_initialize();
}
@@ -308,11 +307,8 @@ FTN_DESTROY_AFFINITY_MASK( void **mask )
KMP_FATAL( AffinityInvalidMask, "kmp_destroy_affinity_mask" );
}
}
- # if KMP_USE_HWLOC
- hwloc_bitmap_free((hwloc_cpuset_t)(*mask));
- # else
- kmpc_free( *mask );
- # endif
+ mask_internals = (kmp_affin_mask_t*)(*mask);
+ __kmp_affinity_dispatch->deallocate_mask(mask_internals);
*mask = NULL;
#endif
}
OpenPOWER on IntegriCloud