]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Disable shared memory cache when not running in SMP mode.
authorAlex Rousskov <rousskov@measurement-factory.com>
Thu, 21 Apr 2011 15:13:33 +0000 (09:13 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Thu, 21 Apr 2011 15:13:33 +0000 (09:13 -0600)
src/MemStore.cc
src/ipc/mem/Pages.cc
src/store.cc
src/store_dir.cc

index cd12ec04c2d61e86ddf98d109df5ad052f14cdb0..612bc5a78b42f0e9ebba751c1912ac2c9a061017 100644 (file)
@@ -372,7 +372,8 @@ RunnerRegistrationEntry(rrAfterConfig, MemStoreRr);
 
 void MemStoreRr::run(const RunnerRegistry &)
 {
-    // XXX: restore if (!UsingSmp()) return;
+    if (!UsingSmp())
+        return;
 
     if (IamMasterProcess())
         MemStore::Init();
@@ -380,7 +381,8 @@ void MemStoreRr::run(const RunnerRegistry &)
 
 MemStoreRr::~MemStoreRr()
 {
-    // XXX: restore if (!UsingSmp()) return;
+    if (!UsingSmp())
+        return;
 
     if (IamMasterProcess())
         MemStoreMap::Unlink(ShmLabel);
index 6ae8ed5901c0d2fac5ee811fd53db2510d3ea082..7f113bee041239a32f9b4e311a48640363963f8e 100644 (file)
@@ -77,7 +77,8 @@ RunnerRegistrationEntry(rrAfterConfig, SharedMemPagesRr);
 
 void SharedMemPagesRr::run(const RunnerRegistry &)
 {
-    // XXX: restore if (!UsingSmp()) return;
+    if (!UsingSmp())
+        return;
 
     // When cache_dirs start using shared memory pages, they would
     // need to communicate their needs to us somehow.
@@ -104,6 +105,9 @@ void SharedMemPagesRr::run(const RunnerRegistry &)
 
 SharedMemPagesRr::~SharedMemPagesRr()
 {
+    if (!UsingSmp())
+        return;
+
     delete ThePagePool;
     ThePagePool = NULL;
     if (IamMasterProcess())
index 7d7adbcfe03c0d0ee87fe50ca9a324291836e84d..cf31227c16498811b957c68961c2b0fa0bada7ad 100644 (file)
@@ -314,7 +314,7 @@ StoreEntry::storeClientType() const
      * offset 0 in the memory object is the HTTP headers.
      */
 
-    if (/* XXX: restore: UsingSmp() && */ mem_status == IN_MEMORY) {
+    if (mem_status == IN_MEMORY && UsingSmp()) {
         // clients of an object cached in shared memory are memory clients
         return STORE_MEM_CLIENT;
     }
@@ -1621,8 +1621,7 @@ StoreEntry::setMemStatus(mem_status_t new_status)
     if (new_status == mem_status)
         return;
 
-    // XXX: restore: if (UsingSmp())
-    {
+    if (UsingSmp()) {
         assert(new_status != IN_MEMORY); // we do not call this otherwise
         // This method was designed to update replacement policy, not to
         // actually purge something from the memory cache (TODO: rename?).
index 39f92ab9e2c9f8a0271afff9c445dafb39551e9c..11ff8c6b47a97c89c5d1221a7a87fdd1d36e9366 100644 (file)
@@ -92,9 +92,10 @@ STDIRSELECT *storeDirSelectSwapDir = storeDirSelectSwapDirLeastLoad;
 void
 StoreController::init()
 {
-    // XXX: add: if (UsingSmp())
-    memStore = new MemStore;
-    memStore->init();
+    if (UsingSmp() && IamWorkerProcess()) {
+        memStore = new MemStore;
+        memStore->init();
+    }
 
     swapDir->init();