Posted to tcl by sebres at Thu Jul 05 16:07:23 GMT 2018view pretty
proc some_actor {_cntr} { upvar $_cntr cntr puts " iter: $cntr" if {[incr cntr] >= 3} { return -code break "done" } } proc some_handler {_cntr} { upvar $_cntr cntr if {[catch { some_actor cntr } v o]} { # resulting value: puts "result: $v" # some finaly code: puts "finalization" # provide return to callee ... return {*}$o -level 1 $v } } proc some_cycle {} { set c 0 while 1 { some_handler c } } some_cycle ==> iter: 0 iter: 1 iter: 2 result: done finalization