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