<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">ok, I understand. The code in _Event_Is_blocking_on_event is correct, it just verifies if the thread is in wait state or not.</div><div dir="ltr">The only thing that varies is what _Thread_Wait_flags_get returns. In my case, it returned 0x102 for 5401 times,</div><div dir="ltr">but 5402th time it returned 0x104; because of that, ( wait_flags & wait_mask ) == wait_class didn't hold true anymore.<br><div>0x104 means the thread is ready .. why is marked as ready instead of blocked is another problem. could it be a memory</div><div>corruption, possibly, but I doubt it, a memory corruption would set it most likely to a value without meaning, but in my case it's</div><div>exactly 0x104.</div><div>I think one of the functions _Thread_Wait_flags_set/_Thread_Wait_flags_try_change may set this value.</div><div>I will check this theory.</div><div><br></div><div>regards,</div><div>Catalin</div><div><br><div><br></div></div></div></div></div></div>