]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/kern/priority.c
xnu-517.tar.gz
[apple/xnu.git] / osfmk / kern / priority.c
index 23f5e43f0c72dc1f180b8f5cd4482ba362274fd5..23470cc84cf52a451760b22fd36113b6a268832a 100644 (file)
@@ -111,6 +111,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;
@@ -141,11 +143,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);