static void g_down_procbody(void *arg) { thread_lock(g_down_td); sched_prio(g_down_td, PRIBIO); thread_unlock(g_down_td); for(;;) { g_io_schedule_down(g_down_td); } }
static void g_down_procbody(void *arg) { mtx_assert(&Giant, MA_NOTOWNED); thread_lock(g_down_td); sched_prio(g_down_td, PRIBIO); thread_unlock(g_down_td); for(;;) { g_io_schedule_down(g_down_td); } }
static void g_down_procbody(void) { struct proc *p = g_down_proc; struct thread *tp = FIRST_THREAD_IN_PROC(p); mtx_assert(&Giant, MA_NOTOWNED); thread_lock(tp); sched_prio(tp, PRIBIO); thread_unlock(tp); for(;;) { g_io_schedule_down(tp); } }