Internal scheduling notes. Internal scheduling requires a stack or queue to make sense. We also need a stack of "monitor contexts" to be able to restuore stuff. Multi scheduling try 1 - adding threads to many monitors and synching the monitors - Too hard Multi scheduling try 2 - using a leader when in a group - it's hard but doable to manage who is the leader and keep the current context - basically __monitor_guard_t always saves an restore the leader and current context