blob: 0974766061931f9f56fe57de9a725e9a2256a511 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include "internal.h"
int
bio·flush(io·Header *io)
{
intptr ni, no;
switch(io->state){
case io·BufWtr:
if((ni = io->cap + io->olen))
return 0;
sys·write(io->fd, ni, io->b, &no);
if(no!=ni){
io->pos += ni;
io->olen = -io->cap;
return 0;
}
io->state = io·BufNil;
io->olen = 0;
break;
case io·BufEof:
io->state = io·BufRdr;
/* fallthrough */
case io·BufRdr:
io->ilen = 0;
io->g = io->e;
return 0;
default:
;
}
return io·BufEof;
}
|