[ros-dev] Race Condition?

KJK::Hyperion noog at libero.it
Mon Nov 8 12:14:39 CET 2004


At 16.57 05/11/2004, you wrote:
>P.S. The thread dispatching that is currently in Ps should be moved to Ke.

Fun fact about the scheduler: the reason there's both KeXxx and PsXxx 
scheduling functions, and both KTHREAD and ETHREAD, is yet other leftover 
from the initial microkernel design. Basically, KeXxx is the kerner proper 
(the rest of the kernel is called "executive"), in the microkernel sense of 
the term: it only does scheduling and obscure low-level 
architecture-specific stuff. It doesn't care about how are threads created, 
how are they maintained alive and when they are destroyed: it just requires 
its subsystems to please hold the dispatcher lock while they add or remove 
threads to its queues. It effectively allows for multiple kernels to 
coexist with the same scheduler (provided they have a way to share hardware 
resources). Keep this in mind when you read our spaghetti code that happily 
mixes Ps and Ke together :-P 



More information about the Ros-dev mailing list