Index: nano.tcl ================================================================== --- nano.tcl +++ nano.tcl @@ -1012,5 +1012,30 @@ lappend outBlocks [receive $account $blockHash $signKey] } return $outBlocks } + +proc ::nano::network::_read {fd bytes} { + if {[chan configure $fd -blocking]} { + tailcall ::read $fd $bytes + } + + set data "" + while {$bytes > 0} { + set readData [read $fd $bytes] + if {[string length $readData] == 0} { + if {[eof $fd]} { + break + } else { + update + + continue + } + } + + incr bytes -[string length $readData] + append data $readData + } + + return $data +}