summaryrefslogtreecommitdiff
path: root/src/sim/drain.cc
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2015-08-04 10:31:37 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2015-08-04 10:31:37 +0100
commit7c904d9d3faff80d724c8ab3e6f1d3815545e2f5 (patch)
tree80bb80679fb357f0ab242987731f073fc5807936 /src/sim/drain.cc
parent1a7802598b3c3d667f7150269f6a26d977ce575c (diff)
downloadgem5-7c904d9d3faff80d724c8ab3e6f1d3815545e2f5.tar.xz
sim: Initialize Drainable::_drainState to the system's state
It is sometimes desirable to be able to instantiate Drainable objects when the simulator isn't in the Running state. Currently, we always initialize Drainable objects to the Running state. However, this confuses many of the sanity checks in the base class since objects aren't expected to be in the Running state if the system is in the Draining or Drained state. Instead of always initializing the state variable in Drainable to DrainState::Running, initialize it to the state the DrainManager is in. Note: This means an object can be created in the Draining/Drained state without first calling drain().
Diffstat (limited to 'src/sim/drain.cc')
-rw-r--r--src/sim/drain.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sim/drain.cc b/src/sim/drain.cc
index 8549da261..c60734876 100644
--- a/src/sim/drain.cc
+++ b/src/sim/drain.cc
@@ -150,7 +150,7 @@ DrainManager::drainableCount() const
Drainable::Drainable()
: _drainManager(DrainManager::instance()),
- _drainState(DrainState::Running)
+ _drainState(_drainManager.state())
{
_drainManager.registerDrainable(this);
}