[COMMENT] Added comment explaining how this code, which at first glance simply couldn't work, indeed can work. Much code (55 lines to be precise) is hidden inside a macro.

svn path=/trunk/; revision=29700
This commit is contained in:
Mike Nordell 2007-10-20 05:48:25 +00:00
parent dedc151662
commit c94bf60692

View file

@ -544,6 +544,12 @@ KeWaitForMultipleObjects(IN ULONG Count,
/* Otherwise, we already have the lock, so initialize the wait */
Thread->WaitNext = FALSE;
/* Note that KxMultiThreadWait is a macro, defined in ke_x.h, that */
/* uses (and modifies some of) the following local */
/* variables: */
/* Thread, Index, WaitBlock, Timer, Timeout, Hand and Swappable. */
/* If it looks like this code doesn't actually wait for any objects */
/* at all, it's because the setup is done by that macro. */
KxMultiThreadWait();
/* Start wait loop */