[NTOSKRNL]
authorCameron Gutman <aicommander@gmail.com>
Sun, 4 Dec 2011 19:22:51 +0000 (19:22 +0000)
committerCameron Gutman <aicommander@gmail.com>
Sun, 4 Dec 2011 19:22:51 +0000 (19:22 +0000)
- 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

index 411a528..91507a9 100644 (file)
@@ -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);
       }