mirror of
https://git.rtems.org/rtems-docs/
synced 2025-05-17 21:51:51 +08:00
parent
3e8af71bb4
commit
6a20bd2f4f
@ -27,6 +27,8 @@ and administer tasks. The directives provided by the task manager are:
|
|||||||
|
|
||||||
- rtems_task_delete_ - Delete a task
|
- rtems_task_delete_ - Delete a task
|
||||||
|
|
||||||
|
- rtems_task_exit_ - Delete the calling task
|
||||||
|
|
||||||
- rtems_task_suspend_ - Suspend a task
|
- rtems_task_suspend_ - Suspend a task
|
||||||
|
|
||||||
- rtems_task_resume_ - Resume a task
|
- rtems_task_resume_ - Resume a task
|
||||||
@ -515,7 +517,8 @@ task, frees the task's control block, removes it from resource wait queues, and
|
|||||||
deallocates its stack as well as the optional floating point context. The
|
deallocates its stack as well as the optional floating point context. The
|
||||||
task's name and ID become inactive at this time, and any subsequent references
|
task's name and ID become inactive at this time, and any subsequent references
|
||||||
to either of them is invalid. In fact, RTEMS may reuse the task ID for another
|
to either of them is invalid. In fact, RTEMS may reuse the task ID for another
|
||||||
task which is created later in the application.
|
task which is created later in the application. A specialization of
|
||||||
|
``rtems_task_delete`` is ``rtems_task_exit`` which deletes the calling task.
|
||||||
|
|
||||||
Unexpired delay timers (i.e. those used by ``rtems_task_wake_after`` and
|
Unexpired delay timers (i.e. those used by ``rtems_task_wake_after`` and
|
||||||
``rtems_task_wake_when``) and timeout timers associated with the task are
|
``rtems_task_wake_when``) and timeout timers associated with the task are
|
||||||
@ -1005,6 +1008,48 @@ NOTES:
|
|||||||
|
|
||||||
\clearpage
|
\clearpage
|
||||||
|
|
||||||
|
.. index:: deleting a task
|
||||||
|
.. index:: rtems_task_exit
|
||||||
|
|
||||||
|
.. _rtems_task_exit:
|
||||||
|
|
||||||
|
TASK_EXIT - Delete the calling task
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
CALLING SEQUENCE:
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
void rtems_task_exit( void ) RTEMS_NO_RETURN;
|
||||||
|
|
||||||
|
DIRECTIVE STATUS CODES:
|
||||||
|
NONE - This function will not return to the caller.
|
||||||
|
|
||||||
|
DESCRIPTION:
|
||||||
|
This directive deletes the calling task.
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
This directive must be called from a regular task context with enabled
|
||||||
|
interrupts, otherwise one of the fatal errors
|
||||||
|
|
||||||
|
* :ref:`INTERNAL_ERROR_BAD_THREAD_DISPATCH_DISABLE_LEVEL <internal_errors>`, or
|
||||||
|
* :ref:`INTERNAL_ERROR_BAD_THREAD_DISPATCH_ENVIRONMENT <internal_errors>`
|
||||||
|
|
||||||
|
will occur.
|
||||||
|
|
||||||
|
The ``rtems_task_exit()`` call is equivalent to the following code
|
||||||
|
sequence:
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
pthread_detach(pthread_self());
|
||||||
|
pthread_exit(NULL);
|
||||||
|
|
||||||
|
See also :ref:`rtems_task_delete() <rtems_task_delete>`.
|
||||||
|
|
||||||
|
.. raw:: latex
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
|
||||||
.. index:: suspending a task
|
.. index:: suspending a task
|
||||||
.. index:: rtems_task_suspend
|
.. index:: rtems_task_suspend
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user