void bad8(void) { if (lck_mtx_try_lock(&lck1) == 0) // no-warning return; lck_mtx_lock(&lck2); // no-warning lck_mtx_unlock(&lck1); // expected-warning{{This was not the most recently acquired lock}} }
/* * Detach the raw connection block and discard * socket resources. */ void raw_detach(struct rawcb *rp) { struct socket *so = rp->rcb_socket; so->so_pcb = 0; so->so_flags |= SOF_PCBCLEARING; sofree(so); if (!lck_mtx_try_lock(raw_mtx)) { socket_unlock(so, 0); lck_mtx_lock(raw_mtx); socket_lock(so, 0); } LIST_REMOVE(rp, list); lck_mtx_unlock(raw_mtx); #ifdef notdef if (rp->rcb_laddr) m_freem(dtom(rp->rcb_laddr)); rp->rcb_laddr = 0; #endif rp->rcb_socket = NULL; FREE((caddr_t)(rp), M_PCB); }
void ok7(void) { if (lck_mtx_try_lock(&lck1) != 0) // no-warning lck_mtx_unlock(&lck1); // no-warning }
boolean_t mutex_try_EXT( lck_mtx_t *mutex) { return(lck_mtx_try_lock(mutex)); }