void mutex_free (dk_mutex_t *mtx) { semaphore_free ((semaphore_t *) mtx->mtx_handle); #ifdef MTX_DEBUG dk_free_box (mtx->mtx_name); #endif dk_free (mtx, sizeof (dk_mutex_t)); dk_set_delete (&all_mtxs, (void*) mtx); }
void dk_mutex_destroy (dk_mutex_t *mtx) { #if HAVE_SPINLOCK if (MUTEX_TYPE_SPIN == mtx->mtx_type) { pthread_spin_destroy (&mtx->l.spinl); } else #endif { pthread_mutex_destroy ((pthread_mutex_t*) &mtx->mtx_mtx); } #ifdef MTX_DEBUG dk_free_box (mtx->mtx_name); #endif #ifdef MTX_METER mutex_enter (all_mtxs_mtx); dk_set_delete (&all_mtxs, (void*) mtx); mutex_leave (all_mtxs_mtx); #endif }