Priority ordered list of threads waiting too run. More...
#include <os-lists.h>
Inheritance diagram for os::rtos::internal::ready_threads_list:Public Member Functions | |
Constructors & Destructor | |
| ready_threads_list () | |
| Construct a list of waiting threads. | |
| ~ready_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. | |
| thread * | unlink_head (void) |
| Remove the top node from the list. | |
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 458 of file os-lists.h.
|
inline |
|
inline |
Definition at line 899 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(), link(), and os::rtos::internal::terminated_threads_list::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(), link(), os::rtos::internal::waiting_threads_list::link(), os::rtos::internal::waiting_threads_list::resume_one(), and unlink_head().
|
inline |
Definition at line 904 of file os-lists.h.
Referenced by link(), and unlink_head().
|
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(), link(), os::rtos::internal::waiting_threads_list::link(), and os::rtos::internal::terminated_threads_list::link().
| void os::rtos::internal::ready_threads_list::link | ( | waiting_thread_node & | node | ) |
| [in] | node | Reference to a list node. |
Definition at line 47 of file os-lists.cpp.
References os::utils::static_double_list::clear(), os::utils::static_double_list::empty(), head(), os::utils::static_double_list::head_, os::utils::static_double_list::insert_after(), os::utils::static_double_list_links::prev(), os::trace::printf(), os::rtos::thread::priority(), os::rtos::thread::state::ready, os::utils::static_double_list::tail(), 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(), link(), os::rtos::internal::waiting_threads_list::link(), and os::rtos::internal::terminated_threads_list::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().
| thread * os::rtos::internal::ready_threads_list::unlink_head | ( | void | ) |
Must be called in a critical section.
Definition at line 126 of file os-lists.cpp.
References os::utils::static_double_list::empty(), head(), os::rtos::internal::object_named::name(), os::trace::printf(), os::rtos::thread::state::running, os::rtos::internal::waiting_thread_node::thread_, and unlink().
|
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(), link(), os::rtos::internal::waiting_threads_list::link(), os::rtos::internal::terminated_threads_list::link(), os::utils::static_double_list::tail(), and os::utils::static_double_list::uninitialized().