In spite of what its name may look like: SyncEvent is a notification event, not a sync event.
Use the correct event for synchronization. This avoids infinite wait in certain circumstances in RxScavengeFobxsForNetRoot()

CORE-11327

svn path=/trunk/; revision=75473
This commit is contained in:
Pierre Schweitzer 2017-08-03 20:23:39 +00:00
parent d767b361d2
commit 62806dc561

View file

@ -7702,7 +7702,7 @@ RxScavengeFobxsForNetRoot(
/* Wait for the scavenger, if asked to */
if (SynchronizeWithScavenger)
{
KeWaitForSingleObject(&Scavenger->SyncEvent, Executive, KernelMode, FALSE, NULL);
KeWaitForSingleObject(&Scavenger->ScavengeEvent, Executive, KernelMode, FALSE, NULL);
}
RxAcquireScavengerMutex();
@ -7767,7 +7767,7 @@ RxScavengeFobxsForNetRoot(
if (SynchronizeWithScavenger)
{
KeSetEvent(&Scavenger->SyncEvent, IO_NO_INCREMENT, FALSE);
KeSetEvent(&Scavenger->ScavengeEvent, IO_NO_INCREMENT, FALSE);
}
}