diff options
Diffstat (limited to 'appl/lib/chanfill.b')
| -rw-r--r-- | appl/lib/chanfill.b | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/appl/lib/chanfill.b b/appl/lib/chanfill.b index 7e7d2685..6f326ea6 100644 --- a/appl/lib/chanfill.b +++ b/appl/lib/chanfill.b @@ -32,25 +32,21 @@ init(data: array of byte, f: int, c: Sys->Rwrite, r: ref Sys->FileIO, b: Bufio): fill(b: ref Iobuf): int { for (;;) { - alt { - (nil, data, f, c) := <-fio.write => - if (f != fid) { - if (c != nil) - c <-= (0, "file busy"); - continue; - } - if (c == nil) - return Bufio->EOF; - c <-= (len data, nil); - i := len data; - if (i == 0) - continue; - b.buffer[b.size:] = data; - b.size += i; - b.filpos += big i; - return i; - * => - return Bufio->EOF; + (nil, data, f, c) := <-fio.write; + if (f != fid) { + if (c != nil) + c <-= (0, "file busy"); + continue; } + if (c == nil) + return Bufio->EOF; + c <-= (len data, nil); + i := len data; + if (i == 0) + continue; + b.buffer[b.size:] = data; + b.size += i; + b.filpos += big i; + return i; } } |
