| 678 | } |
| 679 | |
| 680 | void |
| 681 | _rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, |
| 682 | const char *file, int line) |
| 683 | { |
| 684 | |
| 685 | if (SCHEDULER_STOPPED()) |
| 686 | return; |
| 687 | |
| 688 | KASSERT(!rm_destroyed(rm), |
| 689 | ("rm_runlock() of destroyed rmlock @ %s:%d", file, line)); |
| 690 | _rm_assert(rm, RA_RLOCKED, file, line); |
| 691 | WITNESS_UNLOCK(&rm->lock_object, 0, file, line); |
| 692 | LOCK_LOG_LOCK("RMRUNLOCK", &rm->lock_object, 0, 0, file, line); |
| 693 | _rm_runlock(rm, tracker); |
| 694 | TD_LOCKS_DEC(curthread); |
| 695 | } |
| 696 | |
| 697 | #else |
| 698 |
nothing calls this directly
no test coverage detected