| 1030 | } |
| 1031 | |
| 1032 | static int |
| 1033 | calc_remaining(struct proc *p, int mode) |
| 1034 | { |
| 1035 | int remaining; |
| 1036 | |
| 1037 | PROC_LOCK_ASSERT(p, MA_OWNED); |
| 1038 | PROC_SLOCK_ASSERT(p, MA_OWNED); |
| 1039 | if (mode == SINGLE_EXIT) |
| 1040 | remaining = p->p_numthreads; |
| 1041 | else if (mode == SINGLE_BOUNDARY) |
| 1042 | remaining = p->p_numthreads - p->p_boundary_count; |
| 1043 | else if (mode == SINGLE_NO_EXIT || mode == SINGLE_ALLPROC) |
| 1044 | remaining = p->p_numthreads - p->p_suspcount; |
| 1045 | else |
| 1046 | panic("calc_remaining: wrong mode %d", mode); |
| 1047 | return (remaining); |
| 1048 | } |
| 1049 | |
| 1050 | static int |
| 1051 | remain_for_mode(int mode) |
no test coverage detected