diff options
author | Ron Dreslinski <rdreslin@umich.edu> | 2005-02-09 12:56:24 -0500 |
---|---|---|
committer | Ron Dreslinski <rdreslin@umich.edu> | 2005-02-09 12:56:24 -0500 |
commit | 230a5a608dfb2204e2886a795e6bd8a30224b84f (patch) | |
tree | 81d312257237c4d13ad44836d55d2f192a479036 /sim/startup.cc | |
parent | d9317dd348f3acd853d1e6a09c09f2a27ad5d707 (diff) | |
parent | c4089562d5add225cd8275b59456eb7eb559b988 (diff) | |
download | gem5-230a5a608dfb2204e2886a795e6bd8a30224b84f.tar.xz |
Merger
cpu/simple_cpu/simple_cpu.hh:
Merge
--HG--
extra : convert_revision : 1b6003ac731051fefacb7d7a30c317553b4bf1bc
Diffstat (limited to 'sim/startup.cc')
-rw-r--r-- | sim/startup.cc | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/sim/startup.cc b/sim/startup.cc index ebb4c0bc0..7cc0ac8fb 100644 --- a/sim/startup.cc +++ b/sim/startup.cc @@ -29,20 +29,32 @@ #include <list> #include "base/misc.hh" -#include "sim/startup.hh" #include "sim/debug.hh" +#include "sim/startup.hh" typedef std::list<StartupCallback *> startupq_t; -startupq_t &startupq() { static startupq_t queue; return queue; } -StartupCallback::StartupCallback() { startupq().push_back(this); } -StartupCallback::~StartupCallback() { startupq().remove(this); } + +startupq_t *startupq = NULL; + +StartupCallback::StartupCallback() +{ + if (startupq == NULL) + startupq = new startupq_t; + startupq->push_back(this); +} + +StartupCallback::~StartupCallback() +{ + startupq->remove(this); +} + void StartupCallback::startup() { } void SimStartup() { - startupq_t::iterator i = startupq().begin(); - startupq_t::iterator end = startupq().end(); + startupq_t::iterator i = startupq->begin(); + startupq_t::iterator end = startupq->end(); while (i != end) { (*i)->startup(); |