ThreadControlBlockList-types.hpp: remove use of
containers::SortedContainerBase to get type of
ThreadControlBlockListIterator
SoftwareTimerControlBlockList-types.hpp: remove use of
containers::SortedContainerBase to get type of
SoftwareTimerControlBlockListIterator
SortedContainer: use composition instead of inheritance
add SchedulingPolicy enum class
ThreadControlBlock: add member variable with scheduling policy of the
thread, initialize in constructor to RoundRobin
ThreadControlBlock: add ThreadControlBlock::getSchedulingPolicy()
accessor
Scheduler: fix in Scheduler::isContextSwitchRequired() - check for
remaining round-robin quantum was actually wrong, as the "rotation" is
done before this function is called (in
Scheduler::tickInterruptHandler()), not after (it used to be in
Scheduler::switchContext()); if the rotation was done and some other
thread (with same priority) was present, then current thread will no
longer be at the beginning of "runnable" list, so previous condition
will catch that
ThreadControlBlock: implement ThreadControlBlock::setSchedulingPolicy()
Scheduler: implement handling of different scheduling policies in
Scheduler::tickInterruptHandler()
ThreadBase: expose ThreadControlBlock::getSchedulingPolicy() and
ThreadControlBlock::setSchedulingPolicy()
Thread: expose ThreadControlBlock::getSchedulingPolicy() and
ThreadControlBlock::setSchedulingPolicy()
StaticThread: expose ThreadControlBlock::getSchedulingPolicy() and
ThreadControlBlock::setSchedulingPolicy()
Thread.hpp: add missing comments
ThreadControlBlock: allow setting of scheduling policy via constructor,
update constructors of derived classes, for StaticThread and Thread add
contructors that use default (RoundRobin) scheduling policy
test: use SchedulingPolicy::Fifo for test threads in
MutexPriorityProtocolTestCase