score: Add SMP priority affinity scheduler yield

This commit is contained in:
Tian Ye
2022-05-12 10:48:55 +08:00
committed by Sebastian Huber
parent 4e449f49ac
commit 901bc146b0
2 changed files with 25 additions and 1 deletions

View File

@@ -75,7 +75,7 @@ extern "C" {
{ \
_Scheduler_priority_SMP_Initialize, \
_Scheduler_default_Schedule, \
_Scheduler_priority_SMP_Yield, \
_Scheduler_priority_affinity_SMP_Yield, \
_Scheduler_priority_affinity_SMP_Block, \
_Scheduler_priority_affinity_SMP_Unblock, \
_Scheduler_priority_affinity_SMP_Update_priority, \
@@ -129,6 +129,12 @@ void _Scheduler_priority_affinity_SMP_Block(
Scheduler_Node *node
);
void _Scheduler_priority_affinity_SMP_Yield(
const Scheduler_Control *scheduler,
Thread_Control *thread,
Scheduler_Node *node
);
/**
* @brief Unblocks a thread.
*

View File

@@ -619,6 +619,24 @@ Thread_Control *_Scheduler_priority_affinity_SMP_Remove_processor(
);
}
void _Scheduler_priority_affinity_SMP_Yield(
const Scheduler_Control *scheduler,
Thread_Control *thread,
Scheduler_Node *node
)
{
Scheduler_Context *context = _Scheduler_Get_context( scheduler );
_Scheduler_SMP_Yield(
context,
thread,
node,
_Scheduler_priority_SMP_Extract_from_ready,
_Scheduler_priority_affinity_SMP_Enqueue,
_Scheduler_priority_affinity_SMP_Enqueue_scheduled
);
}
Status_Control _Scheduler_priority_affinity_SMP_Set_affinity(
const Scheduler_Control *scheduler,
Thread_Control *thread,