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

proc eventArrives {stuff} {
    variable queue
    lappend queue $stuff
    windClock
}
proc windClock {} {
    variable queueTimer
    if {![info exists queueTimer]} {
        set queueTimer [after 10 serviceQueue]
    }
}
proc serviceQueue {} {
    variable queue
    variable queueTimer
    unset queueTimer
    set queue [lassign $queue headEvent]
    if {[llength $queue] > 0} windClock
    serviceEvent $headEvent
}