Thanks for the reply.
I looked at the code and here is what I figured out. There is a global
pointer (for the Global Event queue) - g_eventQueue_ptr. Whenever a
Consumer wants to schedule an event, it pushes it's own pointer along
with the time, when to wake up.
When a Consumer is woken up, its wakeup() is called.
Please correct me if I am wrong.
Thanks,
Niket.
You can find the global event queue in $GEMS/ruby/system/EventQueue.[Ch]
Greg Byrd wrote:
I'm pretty sure it's a global event queue. The event itself carries
information about its consumer object. When that event reaches the head
of the event queue, it calls the wakeup method of the object named in
the event.
...Greg
Niket Agarwal wrote:
Hi all,
I have a question.
Gems being an event-driven simulation setup, is there a global event
queue or are there eventqueues for all separate nodes ?
I want to as to when and where are wakeup's of Consumers called ?
For instance, if an additional Switch is instantiated, how does GEMS
know as to when to wake it up ?
Thanks for the help.
Niket.
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
|