The raising of this event is an indication that all volatile state pertaining to the named strand should be saved, and that the strand be set up to execute the named continuation upon a subsequent Run. A NULL continuation indicates that the strand should resume from where it left off. The continuation is NULL by default. The strand remains runnable after a stop event and may be rescheduled at a later time with the Run event. A typical strands package would save away all state in a region identified by the strand argument. Failure to comply results in the loss of the state of computation of the strand in question.
Examples: A scheduler would raise this event at every time quanta expiration, to preempt the currently running strand. A strand might checkpoint itself to implement RAS.
The raising of this event indicates that the named strand owns the CPU resources. A typical strands package would resume the computation of the named strand from where it left off at this stage. Failure to comply results in the execution of the idle loop until the next Stop event.
Examples: A scheduler would raise this event on the next strand to be executed at a context switch. A strand might unilaterally handoff control to another through this mechanism.