]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Remove fake segments from the global Segments array when "unlinking" them.
authorAlex Rousskov <rousskov@measurement-factory.com>
Wed, 26 Oct 2011 17:17:01 +0000 (11:17 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Wed, 26 Oct 2011 17:17:01 +0000 (11:17 -0600)
This change prevents "Duplicate fake segment creation" errors and makes
link/unlink code symmetric.

Also polished fake Segment destruction code.

src/ipc/mem/Segment.cc

index c9bee080ffdf70408a2556b5297c1d53f1f8d2f1..ca9f28c13329effecdf56656faa91c9cf9e0ce5b 100644 (file)
@@ -212,7 +212,9 @@ Ipc::Mem::Segment::~Segment()
 {
     if (doUnlink) {
         delete [] static_cast<char *>(theMem);
-        debugs(54, 3, HERE << "deleted " << theName << " segment");
+        theMem = NULL;
+        Segments.erase(theName);
+        debugs(54, 3, HERE << "unlinked " << theName << " fake segment");
     }
 }