Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Better fix for ticket d74e418e84, [coroutine::util read] closes channel, and 104809e450, [coroutine::util read] swallows data. |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5f6f135b2fd40062579b695bfca65777 |
User & Date: | pooryorick 2017-09-20 15:36:25 |
Context
2017-10-06
| ||
21:07 | Take care of the exceptional situation that the dependent variable is constant in the multivariate regression procedure (ticket 51c03aac1a45161ab6cc59afb69d1768175e054c) check-in: 99ccba5f9f user: arjenmarkus tags: trunk | |
2017-09-20
| ||
15:36 | Better fix for ticket d74e418e84, [coroutine::util read] closes channel, and 104809e450, [coroutine::util read] swallows data. check-in: 5f6f135b2f user: pooryorick tags: trunk | |
13:30 | Fix for ticket d74e418e84, [coroutine::util read] closes channel, and 104809e450, [coroutine::util read] swallows data. check-in: efb5ba6487 user: pooryorick tags: trunk | |
Changes
Changes to modules/coroutine/coroutine.tcl.
︙ | ︙ | |||
277 278 279 280 281 282 283 | # n characters have been read (or eof reached). set buf {} if {$total eq "Inf"} { # Loop until eof. | | > > > > > > > < | < < < < < < < | < | < < | > > > > > > > > > > < < < < < < | | < < < | | < | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 | # n characters have been read (or eof reached). set buf {} if {$total eq "Inf"} { # Loop until eof. while 1 { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 if {[::chan eof $chan]} { break } elseif {[::chan blocked $chan]} { ::chan event $chan readable [list [info coroutine]] yield ::chan event $chan readable {} } try { set result [::chan read $chan] } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } finally { ::chan configure $chan -blocking $blocking } append buf $result } } else { # Loop until total characters have been read, or eof found, # whichever is first. set left $total while 1 { set blocking [::chan configure $chan -blocking] ::chan configure $chan -blocking 0 if {[::chan eof $chan]} { break } elseif {[::chan blocked $chan]} { ::chan event $chan readable [list [info coroutine]] yield ::chan event $chan readable {} } try { set result [::chan read $chan $left] } on error {result opts} { ::chan configure $chan -blocking $blocking return -code $result -options $opts } finally { ::chan configure $chan -blocking $blocking } append buf $result incr left -[string length $result] if {!$left} { break } } } if {$chop && [string index $buf end] eq "\n"} { set buf [string range $buf 0 end-1] } |
︙ | ︙ |