From 6764aa97c8bbcd280b22820940cfd87b154d50ed Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 4 Dec 2011 19:22:51 +0000 Subject: [PATCH] [NTOSKRNL] - 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 --- reactos/ntoskrnl/mm/balance.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reactos/ntoskrnl/mm/balance.c b/reactos/ntoskrnl/mm/balance.c index 411a528b7fc..91507a9dfac 100644 --- a/reactos/ntoskrnl/mm/balance.c +++ b/reactos/ntoskrnl/mm/balance.c @@ -239,7 +239,7 @@ MmRequestPageMemoryConsumer(ULONG Consumer, BOOLEAN CanWait, /* * 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()) { @@ -275,6 +275,7 @@ MmRequestPageMemoryConsumer(ULONG Consumer, BOOLEAN CanWait, if (!CanWait) { (void)InterlockedDecrementUL(&MiMemoryConsumers[Consumer].PagesUsed); + MmRebalanceMemoryConsumers(); return(STATUS_NO_MEMORY); }