Posted to tcl by schelte at Tue Jun 15 21:54:46 GMT 2010view pretty
a.tcl: #!/usr/bin/tclsh set f [open "|./b.tcl" r+] fconfigure $f -buffering line -blocking 0 fileevent $f readable [list data $f] proc data {fd} { if {[eof $fd]} { puts EOF close $fd exit } elseif {[gets $fd line] != -1} { puts $line } } after 12000 puts $f reset after 32000 puts $f quit vwait forever ############################################################### b.tcl: #!/usr/bin/tclsh fileevent stdin readable [list data stdin] fconfigure stdin -blocking 0 fconfigure stdout -buffering line proc data {fd} { if {[eof $fd]} { exit } elseif {[gets $fd line]} { if {$line eq "quit"} { exit } elseif {$line eq "reset"} { set ::counter 0 } } } proc output {} { puts [incr ::counter] after 5000 output } output vwait forever