Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_time.c
Show First 20 Lines • Show All 554 Lines • ▼ Show 20 Lines | do { | ||||
} else | } else | ||||
over = 0; | over = 0; | ||||
tmp = tstosbt(ts); | tmp = tstosbt(ts); | ||||
prec = tmp; | prec = tmp; | ||||
prec >>= tc_precexp; | prec >>= tc_precexp; | ||||
if (TIMESEL(&sbt, tmp)) | if (TIMESEL(&sbt, tmp)) | ||||
sbt += tc_tick_sbt; | sbt += tc_tick_sbt; | ||||
sbt += tmp; | sbt += tmp; | ||||
error = tsleep_sbt(&nanowait[curcpu], PWAIT | PCATCH, "nanslp", | error = tsleep_sbt(&nanowait[curcpu], PWAIT | PCATCH | PUSERW, | ||||
sbt, prec, C_ABSOLUTE); | "nanslp", sbt, prec, C_ABSOLUTE); | ||||
} while (error == 0 && is_abs_real && td->td_rtcgen == 0); | } while (error == 0 && is_abs_real && td->td_rtcgen == 0); | ||||
td->td_rtcgen = 0; | td->td_rtcgen = 0; | ||||
if (error != EWOULDBLOCK) { | if (error != EWOULDBLOCK) { | ||||
if (TIMESEL(&sbtt, tmp)) | if (TIMESEL(&sbtt, tmp)) | ||||
sbtt += tc_tick_sbt; | sbtt += tc_tick_sbt; | ||||
if (sbtt >= sbt) | if (sbtt >= sbt) | ||||
return (0); | return (0); | ||||
if (error == ERESTART) | if (error == ERESTART) | ||||
▲ Show 20 Lines • Show All 1,174 Lines • Show Last 20 Lines |