22 #if defined(RTEMS_SMP) 32 if ( scheduler_node != NULL ) {
46 #if defined(RTEMS_DEBUG) 62 remove = scheduler_node;
67 scheduler_node = next;
68 }
while ( scheduler_node != NULL );
72 scheduler_node =
remove;
74 while ( scheduler_node != NULL ) {
79 #if defined(RTEMS_DEBUG) 94 scheduler_node = next;
void _Thread_Scheduler_process_requests(Thread_Control *the_thread)
Process the thread's scheduler requests.
static __inline__ void _Scheduler_Acquire_critical(const Scheduler_Control *scheduler, ISR_lock_Context *lock_context)
Acquires the scheduler instance inside a critical section (interrupts disabled).
Scheduler_Node * next_request
Link to the next scheduler node in the Thread_Control::Scheduler::requests list.
Inlined Routines Associated with the Manipulation of the Scheduler.
This thread is ready with respect to the scheduler.
Thread_Scheduler_control Scheduler
Scheduler related control.
void(* withdraw_node)(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
Withdraw node operation.
Scheduler_Node_request
The scheduler node requests.
struct Scheduler_Node::@19 Thread
Block to register and manage this scheduler node in the thread control block of the owner of this sch...
Scheduler_Node * requests
List of pending scheduler node requests.
Scheduler_Node_request request
The current scheduler node request.
There is a pending scheduler node request to remove this scheduler node from the Thread_Control::Sche...
size_t helping_nodes
Count of nodes scheduler nodes minus one.
There is a pending scheduler node request to add this scheduler node to the Thread_Control::Scheduler...
static __inline__ void _Chain_Append_unprotected(Chain_Control *the_chain, Chain_Node *the_node)
Appends a node (unprotected).
static __inline__ void _Scheduler_Release_critical(const Scheduler_Control *scheduler, ISR_lock_Context *lock_context)
Releases the scheduler instance inside a critical section (interrupts disabled).
The scheduler node is not on the list of pending requests.
static __inline__ void _Chain_Extract_unprotected(Chain_Node *the_node)
Extracts this node (unprotected).
static __inline__ void _Thread_Scheduler_acquire_critical(Thread_Control *the_thread, ISR_lock_Context *lock_context)
Acquires the lock context in a critical section.
static __inline__ void _Thread_Scheduler_release_critical(Thread_Control *the_thread, ISR_lock_Context *lock_context)
Releases the lock context in a critical section.
Chain_Control Scheduler_nodes
Scheduler nodes immediately available to the schedulers for this thread.
static __inline__ const Scheduler_Control * _Scheduler_Node_get_scheduler(const Scheduler_Node *node)
Gets the scheduler of the node.
Scheduler_Operations Operations
The scheduler operations.
Scheduler node for per-thread data.
Inlined Routines from the Thread Handler.
Local ISR lock context for acquire and release pairs.
The scheduler node is on the list of pending requests, but nothing should change. ...
union Scheduler_Node::@19::@22 Scheduler_node
Node to add this scheduler node to Thread_Control::Scheduler::Scheduler_nodes or a temporary remove l...
#define _Assert(_e)
Assertion similar to assert() controlled via RTEMS_DEBUG instead of NDEBUG.