sim: Reuse the same limit_event in simulate()
authorCurtis Dunham <Curtis.Dunham@arm.com>
Mon, 23 Mar 2015 10:57:36 +0000 (06:57 -0400)
committerCurtis Dunham <Curtis.Dunham@arm.com>
Mon, 23 Mar 2015 10:57:36 +0000 (06:57 -0400)
commit564482c78283c749dc537cb9c1b2d788bf306a82
treed9fa838e9313aa7938cb478612bef8a22e5a080e
parent45286d9b64646bb4fe47f3ebf1815324dd6cb62b
sim: Reuse the same limit_event in simulate()

This patch accomplishes two things:
1. Makes simulate()'s GlobalSimLoopExitEvent a singleton reused
   across calls. This is slightly more efficient than recreating
   it every time.
2. Gives callers to simulate() (especially other simulators) a
   foolproof way of knowing that the simulation period ended
   successfully by hitting the limit event. They can call
   getLimitEvent() and compare it to the return
   value of simulate().

This change was motivated by an ongoing effort to integrate gem5
and SST, with SST as the master sim and gem5 as the slave sim.
src/sim/sim_events.hh
src/sim/simulate.cc
src/sim/simulate.hh