fix the MAX_CHECKPOINTS stuff
authorNathan Binkert <binkertn@umich.edu>
Mon, 19 Sep 2005 01:20:24 +0000 (21:20 -0400)
committerNathan Binkert <binkertn@umich.edu>
Mon, 19 Sep 2005 01:20:24 +0000 (21:20 -0400)
sim/serialize.cc:
    Make the max checkpoint thing actually stop after the last
    checkpoint

--HG--
extra : convert_revision : 091179c4706e9876a9b7e826513c5c14ce6b72af

sim/serialize.cc

index dd5d53642e40563a861c62fa8153e0311eaa04d2..ec72414985c9f1c65a75bbf0a2c68df732fe1089 100644 (file)
@@ -51,8 +51,8 @@
 
 using namespace std;
 
-int Serializable::maxCount;
-int Serializable::count;
+int Serializable::maxCount = 0;
+int Serializable::count = 0;
 
 void
 Serializable::nameOut(ostream &os)
@@ -229,9 +229,6 @@ Globals::unserialize(Checkpoint *cp)
 void
 Serializable::serializeAll()
 {
-    if (maxCount && count++ > maxCount)
-        exitNow("Maximum number of checkpoints dropped", 0);
-
     string dir = Checkpoint::dir();
     if (mkdir(dir.c_str(), 0775) == -1 && errno != EEXIST)
             fatal("couldn't mkdir %s\n", dir);
@@ -243,6 +240,9 @@ Serializable::serializeAll()
 
     globals.serialize(outstream);
     SimObject::serializeAll(outstream);
+
+    if (maxCount && ++count >= maxCount)
+        SimExit(curTick + 1, "Maximum number of checkpoints dropped");
 }