> Your latest suggestion is very similar to how the current patch works. The > only difference is that the Ruby event queue shim layer does a logical > pointer swap and not a physical pointer swap within the main gem5 event queue > itself. I'm somewhat leery of making the event queue head pointer public, > but if you're ok with it, then I'll go along with it. It certainly will be > less work for Somayeh...no need to worry about events scheduling past T-1 > ticks, etc.
Let's definitely not make the head pointer public. I think that the right thing to do is create a swap() function (for those of you that don't know, swap is a very common concept in the STL). Then we can create a temporary queue, swap it with the main queue, run everything, and when it is done, swap it back. The swap function would be public, but nothing else would be. This seems to me to be the safest way to ensure that everything works as expected. I'd also like to see _curTick moved into the eventQueue itself, and the global curTick() function should call mainEventQueue.curTick(). (Is this what you've done for your multiple event queue patch steve?) Nate _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
