/* * rw_destroy: * * Tear down a rwlock. */ void rw_destroy(krwlock_t *rw) { RW_ASSERT(rw, (rw->rw_owner & ~RW_NODEBUG) == 0); LOCKDEBUG_FREE(RW_DEBUG_P(rw), rw); }
/* * mutex_destroy: * * Tear down a mutex. */ void mutex_destroy(kmutex_t *mtx) { if (MUTEX_ADAPTIVE_P(mtx)) { MUTEX_ASSERT(mtx, !MUTEX_OWNED(mtx->mtx_owner) && !MUTEX_HAS_WAITERS(mtx)); } else { MUTEX_ASSERT(mtx, !MUTEX_SPINBIT_LOCKED_P(mtx)); } LOCKDEBUG_FREE(MUTEX_DEBUG_P(mtx), mtx); MUTEX_DESTROY(mtx); }