diff base/StorageAdviser.cpp @ 415:e37e44681720

* Fix failure to take into account near-OOM situations!
author Chris Cannam
date Mon, 09 Jun 2008 16:01:22 +0000
parents 52303ec15cd2
children cff476cfce77
line wrap: on
line diff
--- a/base/StorageAdviser.cpp	Mon Jun 09 09:41:58 2008 +0000
+++ b/base/StorageAdviser.cpp	Mon Jun 09 16:01:22 2008 +0000
@@ -22,7 +22,7 @@
 
 #include <iostream>
 
-//#define DEBUG_STORAGE_ADVISER 1
+#define DEBUG_STORAGE_ADVISER 1
 
 long StorageAdviser::m_discPlanned = 0;
 long StorageAdviser::m_memoryPlanned = 0;
@@ -85,12 +85,12 @@
     int maxmb = maximumSize / 1024 + 1;
 
     if (memoryFree == -1) memoryStatus = Unknown;
+    else if (memoryFree < memoryTotal / 3) memoryStatus = Insufficient;
     else if (minmb > (memoryFree * 3) / 4) memoryStatus = Insufficient;
     else if (maxmb > (memoryFree * 3) / 4) memoryStatus = Marginal;
     else if (minmb > (memoryFree / 3)) memoryStatus = Marginal;
     else if (memoryTotal == -1 ||
              minmb > (memoryTotal / 10)) memoryStatus = Marginal;
-    else if (memoryFree < memoryTotal / 4) memoryStatus = Marginal;
     else memoryStatus = Sufficient;
 
     if (discFree == -1) discStatus = Unknown;