+ thread_t thread, old_thread = processor->active_thread;
+
+ thread = processor->idle_thread;
+ processor->active_thread = thread;
+ processor->current_pri = IDLEPRI;
+
+ processor->last_dispatch = mach_absolute_time();
+ timer_switch((uint32_t)processor->last_dispatch,
+ &PROCESSOR_DATA(processor, offline_timer));
+
+ thread_done(old_thread, thread, processor);
+
+ machine_set_current_thread(thread);
+
+ thread_begin(thread, processor);