simple_unlock(&thread_call_lock);
splx(s);
- activate_thread = kernel_thread_with_priority(kernel_task,
- MAXPRI_KERNBAND-2, _activate_thread, TRUE);
+ activate_thread = kernel_thread_with_priority(
+ kernel_task, MAXPRI_KERNEL - 2,
+ _activate_thread, TRUE, TRUE);
}
void
current = TC(queue_first(&delayed_call_queue));
while (TRUE) {
- if ( queue_end(&delayed_call_queue, qe(current)) ||
- CMP_ABSOLUTETIME(&call->deadline,
- ¤t->deadline) < 0 ) {
+ if ( queue_end(&delayed_call_queue, qe(current)) ||
+ call->deadline < current->deadline ) {
current = TC(queue_prev(qe(current)));
break;
}
thread_call_func_delayed(
thread_call_func_t func,
thread_call_param_t param,
- AbsoluteTime deadline
+ uint64_t deadline
)
{
thread_call_t call;
boolean_t
thread_call_enter_delayed(
thread_call_t call,
- AbsoluteTime deadline
+ uint64_t deadline
)
{
boolean_t result = TRUE;
thread_call_enter1_delayed(
thread_call_t call,
thread_call_param_t param1,
- AbsoluteTime deadline
+ uint64_t deadline
)
{
boolean_t result = TRUE;
boolean_t
thread_call_is_delayed(
thread_call_t call,
- AbsoluteTime *deadline)
+ uint64_t *deadline)
{
boolean_t result = FALSE;
int s;
simple_unlock(&thread_call_lock);
(void) spllo();
- (void) kernel_thread_with_priority(kernel_task,
- MAXPRI_KERNBAND-1, _call_thread, TRUE);
+ (void) kernel_thread_with_priority(
+ kernel_task, MAXPRI_KERNEL - 1,
+ _call_thread, TRUE, TRUE);
#if NO_CONTINUATIONS
thread_block((void (*)(void)) 0);
goto loop;
timer_call_param_t p1
)
{
- AbsoluteTime timestamp;
+ uint64_t timestamp;
thread_call_t call;
boolean_t new_pending = FALSE;
int s;
call = TC(queue_first(&delayed_call_queue));
while (!queue_end(&delayed_call_queue, qe(call))) {
- if (CMP_ABSOLUTETIME(&call->deadline, ×tamp) <= 0) {
+ if (call->deadline <= timestamp) {
_delayed_call_dequeue(call);
_pending_call_enqueue(call);