X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/de355530ae67247cbd0da700edb3a2a1dae884c2..e5568f75972dfc723778653c11cb6b4dc825716a:/osfmk/kern/priority.c diff --git a/osfmk/kern/priority.c b/osfmk/kern/priority.c index 084e8fe2c..a1e170de5 100644 --- a/osfmk/kern/priority.c +++ b/osfmk/kern/priority.c @@ -108,6 +108,8 @@ thread_quantum_expire( thread->sched_mode &= ~TH_MODE_REALTIME; } + pset_share_incr(thread->processor_set); + thread->safe_release = sched_tick + sched_safe_duration; thread->sched_mode |= (TH_MODE_FAILSAFE|TH_MODE_TIMESHARE); thread->sched_mode &= ~TH_MODE_PREEMPT; @@ -138,11 +140,10 @@ thread_quantum_expire( /* * This quantum is up, give this thread another. */ - if (first_quantum(myprocessor)) - myprocessor->slice_quanta--; + if (first_timeslice(myprocessor)) + myprocessor->timeslice--; - thread->current_quantum = (thread->sched_mode & TH_MODE_REALTIME)? - thread->realtime.computation: std_quantum; + thread_quantum_init(thread); myprocessor->quantum_end += thread->current_quantum; timer_call_enter1(&myprocessor->quantum_timer, thread, myprocessor->quantum_end);