Posted to tcl by kbk at Wed Mar 25 16:49:51 GMT 2015view raw

  1. proc eventArrives {stuff} {
  2. variable queue
  3. lappend queue $stuff
  4. windClock
  5. }
  6. proc windClock {} {
  7. variable queueTimer
  8. if {![info exists queueTimer]} {
  9. set queueTimer [after 10 serviceQueue]
  10. }
  11. }
  12. proc serviceQueue {} {
  13. variable queue
  14. variable queueTimer
  15. unset queueTimer
  16. set queue [lassign $queue headEvent]
  17. if {[llength $queue] > 0} windClock
  18. serviceEvent $headEvent
  19. }