Posted to tcl by evilotto at Thu Sep 12 18:23:09 GMT 2013view pretty
namespace eval ::synevent { proc notify {var} { incr ::synevent::$var } # repeatedly notify a handle at N ms intervals proc notify-interval {var interval} { incr ::synevent::$var after $interval [namespace code [info level 0]] } proc evHandler {script var var2 op} { after idle $script } proc on {var script} { set inf [trace vinfo ::synevent::$var] foreach t $inf { trace vdelete ::synevent::$var [lindex $t 0] [lindex $t 1] } set ::synevent::$var 0 if {$script != ""} { set scriptcall [uplevel namespace code [list $script]] trace variable ::synevent::$var w [list ::synevent::evHandler $scriptcall] } } namespace export on notify notify-interval } namespace import ::synevent::* package provide synevent 0.2