| 966 | } |
| 967 | |
| 968 | void |
| 969 | thread_lock_unblock(struct thread *td, struct mtx *new) |
| 970 | { |
| 971 | |
| 972 | mtx_assert(new, MA_OWNED); |
| 973 | KASSERT(td->td_lock == &blocked_lock, |
| 974 | ("thread %p lock %p not blocked_lock %p", |
| 975 | td, td->td_lock, &blocked_lock)); |
| 976 | atomic_store_rel_ptr((volatile void *)&td->td_lock, (uintptr_t)new); |
| 977 | } |
| 978 | |
| 979 | void |
| 980 | thread_lock_block_wait(struct thread *td) |
no test coverage detected