Posted to tcl by sebres at Thu Jul 05 16:07:23 GMT 2018view raw
- 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