Unordered list of threads. More...
#include <os-lists.h>
Inheritance diagram for os::rtos::internal::terminated_threads_list:Public Member Functions | |
Constructors & Destructor | |
| terminated_threads_list () | |
| Construct a list of waiting threads. | |
| ~terminated_threads_list () | |
| Destruct the list. | |
Public Member Functions | |
| void | link (waiting_thread_node &node) |
| Add a new thread node to the list. | |
| volatile waiting_thread_node * | head (void) const |
| Get list head. | |
Public Member Functions | |
| bool | uninitialized (void) const |
| Check if the list is uninitialised. | |
| void | clear (void) |
| Clear the list. | |
| bool | empty (void) const |
| Check if the list is empty. | |
| volatile static_double_list_links * | tail (void) const |
| Get the list tail. | |
Protected Member Functions | |
Private Member Functions | |
| void | insert_after (static_double_list_links &node, static_double_list_links *after) |
| Insert a new node after existing node. | |
Protected Attributes | |
Private Member Variables | |
| static_double_list_links | head_ |
| A list node used to point to head and tail. | |
Definition at line 747 of file os-lists.h.
|
inline |
|
inline |
Definition at line 981 of file os-lists.h.
|
inherited |
Initialise the mandatory node with links to itself.
Definition at line 108 of file lists.cpp.
References os::utils::static_double_list::head_, os::utils::static_double_list_links::next(), and os::utils::static_double_list_links::prev().
Referenced by os::utils::double_list::double_list(), os::rtos::internal::ready_threads_list::link(), and link().
|
inlineinherited |
| true | The list has no nodes. |
| false | The list has at least one node. |
Definition at line 1001 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::next().
Referenced by os::utils::double_list::~double_list(), os::rtos::internal::clock_timestamps_list::check_timestamp(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), os::rtos::internal::waiting_threads_list::resume_one(), and os::rtos::internal::ready_threads_list::unlink_head().
|
inline |
Definition at line 986 of file os-lists.h.
|
protectedinherited |
| node | Reference to node to insert. |
| after | Reference to existing node. |
Definition at line 121 of file lists.cpp.
References os::utils::static_double_list_links::next(), os::utils::static_double_list_links::prev(), and os::trace::printf().
Referenced by os::rtos::internal::thread_children_list::link(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), and link().
| void os::rtos::internal::terminated_threads_list::link | ( | waiting_thread_node & | node | ) |
| [in] | node | Reference to a list node. |
Definition at line 535 of file os-lists.cpp.
References os::utils::static_double_list::clear(), os::utils::static_double_list::head_, os::utils::static_double_list::insert_after(), os::rtos::internal::object_named::name(), os::utils::static_double_list_links::prev(), os::trace::printf(), os::utils::static_double_list::tail(), os::rtos::thread::state::terminated, and os::rtos::internal::waiting_thread_node::thread_.
|
inlineinherited |
Definition at line 1014 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::prev().
Referenced by os::rtos::internal::thread_children_list::link(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), and link().
|
inlineinherited |
| true | The list was not initialised. |
| false | The list was initialised. |
Definition at line 994 of file lists.h.
References os::utils::static_double_list::head_, and os::utils::static_double_list_links::prev().
|
protectedinherited |
To simplify processing, the list always has a node.
Definition at line 473 of file lists.h.
Referenced by os::rtos::internal::waiting_threads_list::begin(), os::rtos::internal::clock_timestamps_list::check_timestamp(), os::utils::static_double_list::clear(), os::utils::static_double_list::empty(), os::rtos::internal::waiting_threads_list::end(), os::utils::static_double_list::head(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), link(), os::utils::static_double_list::tail(), and os::utils::static_double_list::uninitialized().