- Fix a logic error
- Signal the balancer in the !CanWait case if we're too low on pages since it runs asynchronously as of recently
svn path=/trunk/; revision=54591
/*
* Make sure we don't exceed our individual target.
*/
- PagesUsed = InterlockedIncrementUL(&MiMemoryConsumers[Consumer].PagesUsed) + 1;
+ PagesUsed = InterlockedIncrementUL(&MiMemoryConsumers[Consumer].PagesUsed);
if (PagesUsed > MiMemoryConsumers[Consumer].PagesTarget &&
!MiIsBalancerThread())
{
if (!CanWait)
{
(void)InterlockedDecrementUL(&MiMemoryConsumers[Consumer].PagesUsed);
+ MmRebalanceMemoryConsumers();
return(STATUS_NO_MEMORY);
}