Replace the dont_sleep_in_callout mutex hack (similar to g_x{up,down})
with the disallow sleeping facility.
This commit is contained in:
parent
10f508d9a3
commit
53c0e1ff7d
@ -71,9 +71,6 @@ int callwheelsize, callwheelbits, callwheelmask;
|
||||
struct callout_tailq *callwheel;
|
||||
int softticks; /* Like ticks, but for softclock(). */
|
||||
struct mtx callout_lock;
|
||||
#ifdef DIAGNOSTIC
|
||||
struct mtx dont_sleep_in_callout;
|
||||
#endif
|
||||
|
||||
static struct callout *nextsoftcheck; /* Next callout to be checked. */
|
||||
|
||||
@ -159,9 +156,6 @@ kern_timeout_callwheel_init(void)
|
||||
TAILQ_INIT(&callwheel[i]);
|
||||
}
|
||||
mtx_init(&callout_lock, "callout", NULL, MTX_SPIN | MTX_RECURSE);
|
||||
#ifdef DIAGNOSTIC
|
||||
mtx_init(&dont_sleep_in_callout, "dont_sleep_in_callout", NULL, MTX_DEF);
|
||||
#endif
|
||||
mtx_init(&callout_wait_lock, "callout_wait_lock", NULL, MTX_DEF);
|
||||
cv_init(&callout_wait, "callout_wait");
|
||||
}
|
||||
@ -290,11 +284,11 @@ softclock(void *dummy)
|
||||
}
|
||||
#ifdef DIAGNOSTIC
|
||||
binuptime(&bt1);
|
||||
mtx_lock(&dont_sleep_in_callout);
|
||||
#endif
|
||||
THREAD_NO_SLEEPING();
|
||||
c_func(c_arg);
|
||||
THREAD_SLEEPING_OK();
|
||||
#ifdef DIAGNOSTIC
|
||||
mtx_unlock(&dont_sleep_in_callout);
|
||||
binuptime(&bt2);
|
||||
bintime_sub(&bt2, &bt1);
|
||||
if (bt2.frac > maxdt) {
|
||||
|
Loading…
Reference in New Issue
Block a user