Posted to tcl by schelte at Sat Jun 25 13:41:00 GMT 2011view pretty
proc coread {sock lenght} { set rc "" chan event $sock readable [info coroutine] while {[string length $rc] < $length} { if {[eof $sock]} {# do something} yield append rc [read $sock [expr {$lenght - [string length $rc]] } chan event $sock readable {} return $rc }