[ros-dev] Re: [ros-svn] [ion] 20554: - Fix shamefully dangerously broken Work Thread/Queue/Item implementation:

Hartmut Birr osexpert at googlemail.com
Fri Jan 6 00:44:12 CET 2006


Alex Ionescu wrote:
> Hartmut Birr wrote:
>
>> Hi,
>>
>> there are three places in the kernel, which does remove wait blocks.
>> They are in KiAbortWaitThread, KiInsertQueue and KiBlockThread. Only in
>> KiBlockThread, Thread->WaitBlockList is  set to NULL. Is this the
>> problem?
>>
>> - Hartmut
>>  
>>
> Hi,
>
> I have been reading Windows Internals II and Windows Internals 4th
> Edition and I see that the wait blocks are actually supposed to be a
> circular list... so there should never really be any "NULL". It's
> possible I based some previous code on this knowledge, which is now
> conflicting with the ROS implementation of a null-terminated list. I
> will change the wait code to use circular lists as documented and post
> a patch.
>
> Best regards,
> Alex Ionescu
>
I think, the real problem isn't if the list is NULL terminated or if the
WaitBlockList entry from thread is NULL. The real problem is,
KiAbortWaitThread is called for a thread which does not waiting.

- Hartmut



More information about the Ros-dev mailing list