diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2012-09-18 22:46:34 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2012-09-18 22:46:34 -0500 |
commit | 86b1c0fd540b57c1e7bba948ad0417f22f90eb41 (patch) | |
tree | c4dc42939158c13b5eeff2f6809fa800c99e490b /src/mem/ruby/common/Consumer.hh | |
parent | d2b57a7473768e8aff3707916b40b264cab6821c (diff) | |
download | gem5-86b1c0fd540b57c1e7bba948ad0417f22f90eb41.tar.xz |
ruby: avoid using g_system_ptr for event scheduling
This patch removes the use of g_system_ptr for event scheduling. Each consumer
object now needs to specify upfront an EventManager object it would use for
scheduling events. This makes the ruby memory system more amenable for a
multi-threaded simulation.
Diffstat (limited to 'src/mem/ruby/common/Consumer.hh')
-rw-r--r-- | src/mem/ruby/common/Consumer.hh | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mem/ruby/common/Consumer.hh b/src/mem/ruby/common/Consumer.hh index 6a67bde39..a10abf362 100644 --- a/src/mem/ruby/common/Consumer.hh +++ b/src/mem/ruby/common/Consumer.hh @@ -44,8 +44,8 @@ class Consumer { public: - Consumer() - : m_last_scheduled_wakeup(0), m_last_wakeup(0) + Consumer(EventManager *_em) + : m_last_scheduled_wakeup(0), m_last_wakeup(0), em(_em) { } @@ -88,8 +88,6 @@ class Consumer m_scheduled_wakeups.erase(time); } - void scheduleEvent(EventManager* em, Time timeDelta); - void scheduleEventAbsolute(EventManager* em, Time timeAbs); void scheduleEvent(Time timeDelta); void scheduleEventAbsolute(Time timeAbs); @@ -97,6 +95,7 @@ class Consumer Tick m_last_scheduled_wakeup; std::set<Tick> m_scheduled_wakeups; Tick m_last_wakeup; + EventManager *em; class ConsumerEvent : public Event { |