// but if you are doing this on intervals, don't forget to make another
if (repeat) {
assert(getFlags(IsMainQueue));
- mainEventQueue.schedule(this, curTick + repeat);
+ mainEventQueue.schedule(this, curTick() + repeat);
}
}
}
CountedDrainEvent::CountedDrainEvent()
- : SimLoopExitEvent("Finished drain", 0), count(0)
+ : count(0)
{ }
void
CountedDrainEvent::process()
{
if (--count == 0)
- exitSimLoop(cause, code);
+ exitSimLoop("Finished drain", 0);
}
//
{
return "counted exit";
}
-
-CheckSwapEvent::CheckSwapEvent(int ival)
- : interval(ival)
-{
- mainEventQueue.schedule(this, curTick + interval);
-}
-
-void
-CheckSwapEvent::process()
-{
- /* Check the amount of free swap space */
- long swap;
-
- /* returns free swap in KBytes */
- swap = procInfo("/proc/meminfo", "SwapFree:");
-
- if (swap < 1000)
- ccprintf(cerr, "\a\a\aWarning! Swap space is low (%d)\n", swap);
-
- if (swap < 100) {
- cerr << "\a\aAborting Simulation! Inadequate swap space!\n\n";
- exitSimLoop("Lack of swap space");
- }
-
- assert(getFlags(IsMainQueue));
- mainEventQueue.schedule(this, curTick + interval);
-}
-
-const char *
-CheckSwapEvent::description() const
-{
- return "check swap";
-}