mirror of
https://github.com/apache/nuttx.git
synced 2026-10-10 07:40:27 +00:00
Documentation: Describe the per-object wait lists of the scheduler.
nuttx_tasking.rst lists g_waitingforsemaphore, g_waitingformqnotempty and g_waitingformqnotfull as task lists. They no longer exist: a task that waits for a semaphore, an event or a message queue is on a prioritized wait list in that object. Describe that, and remove the three lists. Also spell "preempted" as codespell wants, because CI checks every file that a change touches. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
This commit is contained in:
parent
7e6c2eaf00
commit
05931b7014
1 changed files with 10 additions and 24 deletions
|
|
@ -58,9 +58,9 @@ Task Lists
|
|||
These TCBs are retained in lists. The state of a task is indicated both
|
||||
by the ``task_state`` field of the TCB and by a series of task lists.
|
||||
Although it is not always necessary, most of these lists are prioritized
|
||||
so that common list handling logic can be used (only the ``g_readytorun``,
|
||||
the ``g_pendingtasks``, and the ``g_waitingforsemaphore`` lists
|
||||
need to be prioritized).
|
||||
so that common list handling logic can be used (only the ``g_readytorun``
|
||||
and ``g_pendingtasks`` lists, and the wait lists in each semaphore, event and
|
||||
message queue, need to be prioritized).
|
||||
|
||||
All new tasks start in an initial, non-running state:
|
||||
|
||||
|
|
@ -104,13 +104,13 @@ All new tasks start in an initial, non-running state:
|
|||
the ``g_readytorun`` to ``the g_pendingtasks`` lists, depending up
|
||||
if pre-emption is disabled and upon the priority of the tasks.
|
||||
|
||||
Here are the blocked task lists:
|
||||
A task that waits for a semaphore, an event or a message queue is not on a
|
||||
global list. It is on a prioritized wait list in that object: ``waitlist``
|
||||
in ``sem_t`` and in ``nxevent_t``, and ``waitfornotempty`` or
|
||||
``waitfornotfull`` in a message queue. The ``waitobj`` field of the TCB points
|
||||
to the object.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
volatile dq_queue_t g_waitingforsemaphore;
|
||||
|
||||
* This is the list of all tasks that are blocked waiting for a semaphore.
|
||||
Here are the other blocked task lists:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
|
|
@ -119,20 +119,6 @@ Here are the blocked task lists:
|
|||
* This is the list of all tasks that are blocked waiting for a signal
|
||||
(only if signal support has not been disabled).
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
volatile dq_queue_t g_waitingformqnotempty;
|
||||
|
||||
* This is the list of all tasks that are blocked waiting for a message queue
|
||||
to become non-empty (only if message queue support has not been disabled).
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
volatile dq_queue_t g_waitingformqnotfull;
|
||||
|
||||
* This is the list of all tasks that are blocked waiting for a message queue
|
||||
to become non-full (only if message queue support has not been disabled).
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
volatile dq_queue_t g_waitingforfill;
|
||||
|
|
@ -169,7 +155,7 @@ at the same priority.
|
|||
|
||||
1. If there is only one task at this priority, ``SCHED_RR`` and
|
||||
``SCHED_FIFO`` are the same, AND
|
||||
2. ``SCHED_FIFO`` tasks are never pre-empted in this way.
|
||||
2. ``SCHED_FIFO`` tasks are never preempted in this way.
|
||||
|
||||
Task IDs
|
||||
========
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue