>>>     /*
>>>      * This is done when we need to check if reevaluations are needed.
>>>      */
>>>     if ( victim == NULL ) {
>>> -    return _Scheduler_priority_Ready_queue_first(
>>> +    node = (Scheduler_priority_affinity_SMP_Node *)
>>> +      _Scheduler_priority_Ready_queue_first(
>>>           &self->Bit_map,
>>>           &self->Ready[ 0 ]
>>>         );
>>> +
>>> +    return &node->Base.Base.Base;
>>
>> This Base.Base.Base is quite awkward and not at all clear what it
>> means. Shouldn't this be using a downcast() function? Repeated a few
>> times.
>>
>> -Gedare
>
>
> No, this Base.Base.Base basically is an upcast.  In C++ this stuff would be
> hidden the compiler for you, but we use C, so object oriented stuff is
> awkward.
>
Got it, but it might improve readability to introduce something like
_Scheduler_priority_affinity_SMP_Node_upcast_to_scheduler_node()
-Gedare
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to