{
EX_PUSH_LOCK OldValue = *PushLock, NewValue, TempValue;
BOOLEAN NeedWake;
- DEFINE_WAIT_BLOCK(WaitBlock);
+ EX_PUSH_LOCK_WAIT_BLOCK Block;
+ PEX_PUSH_LOCK_WAIT_BLOCK WaitBlock = &Block;
/* Start main loop */
for (;;)
{
EX_PUSH_LOCK OldValue = *PushLock, NewValue;
BOOLEAN NeedWake;
- DEFINE_WAIT_BLOCK(WaitBlock);
+ EX_PUSH_LOCK_WAIT_BLOCK Block;
+ PEX_PUSH_LOCK_WAIT_BLOCK WaitBlock = &Block;
/* Start main loop */
for (;;)
NewValue.Value = OldValue.Value &~ EX_PUSH_LOCK_LOCK;
/* Sanity check */
- ASSERT(NewValue.Waking && !NewValue.Waiting);
+ ASSERT(NewValue.Waking || !NewValue.Waiting);
/* Write the New Value */
NewValue.Ptr = InterlockedCompareExchangePointer(&PushLock->Ptr,