diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-08-04 10:31:37 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-08-04 10:31:37 +0100 |
commit | 7c904d9d3faff80d724c8ab3e6f1d3815545e2f5 (patch) | |
tree | 80bb80679fb357f0ab242987731f073fc5807936 | |
parent | 1a7802598b3c3d667f7150269f6a26d977ce575c (diff) | |
download | gem5-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().
-rw-r--r-- | src/sim/drain.cc | 2 |
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); } |