-
ext_tsk
-
void ext_tsk (void);
This service call moves the invoking task from the RUNNING state to the DORMANT state.
As a result, the invoking task is unlinked from the ready queue and excluded from the RI600V4 scheduling subject.
At this time, the following processing is done.
Table 18-3 Processing Performed at Task Termination
|
|
|
Unlocks the mutexes which are locked by the terminated task. (processing equivalent to unl_mtx will be executed)
|
The CPU locked state and dispatching disabled state is cancelled.
If an activation request has been queued to the invoking task (the activation request counter > 0) when this service call is issued, this service call moves the task from the RUNNING state to the DORMANT state, decrements the activation request counter (by subtracting 1 from the activation request counter), and then moves the task from the DORMANT state to the READY state. At this time, processing described in
Table 18-2 is done.
This service call does not return. In the following cases, this service call causes
SYSTEM DOWN.
- This service call was issued from non-task.
- This service call was issued in the status PSW.IPL > kernel interrupt mask level
Note 1 When the return instruction is issued in the task entry function, the same processing as ext_tsk is performed.
Note 2 This service call does not have the function to automatically free the resources except the mutex hitherto occupied by the task (e.g., semaphores and memory blocks). Make sure the task frees these resources before it terminates