The
thread_exit ();
function implements the machine independent prelude to a thread
shutdown.
It will not return, and will result in a call to
mi_switch9
to schedule some other thread.
thread_exit ();
arranges to free all the resources of the thread, specifically the kernel
stack.
To protect the
runqueue(9),
thread_exit ();
must be called with the
sched_lock
mutex held.