Posted to tcl by schelte at Sat Dec 14 16:11:23 GMT 2013view raw

  1. proc nocoro {{num 0}} {
  2. puts [info level 0]
  3. if {[info coroutine] ne ""} {
  4. after 1000 [list nocoro [incr num]]
  5. return
  6. }
  7. puts "Done"
  8. exit
  9. }
  10.  
  11. proc coro {} {
  12. global minute
  13. nocoro
  14. set id [after 60000 {set minute done}]
  15. vwait minute
  16. after cancel $id
  17. }
  18.  
  19. coroutine foo coro
  20.  
  21. vwait forever
  22.