Posted to tcl by rmax at Wed Jan 08 14:30:59 GMT 2014view pretty

proc log {args} {
    set time [expr [clock seconds] - $::start]
    puts [format "\[%02d\] %s" $time $args]
}

proc call {conn_id} {
    set ::a_vwait($conn_id) 0
    after 5000 cb $conn_id
}

proc cb {conn_id} {
    set ::a_vwait($conn_id) 1
}

proc testloop {args} {
    puts "..."
    after 600 {testloop}
}

trace add execution call enter log
trace add execution call leave log
trace add execution cb enter log
trace add execution cb leave log
 
set start [clock seconds]
 
after 0 {testloop}
after 2000 {call 1}
after 4000 {call 2}
after 6000 {call 3}
 
after 15000 {exit}
vwait forever