Bug #3268 » pollhup02.patch
sys/kern/sys_pipe.c | ||
---|---|---|
*/
|
||
if (kn->kn_data == 0)
|
||
kn->kn_flags |= EV_NODATA;
|
||
kn->kn_flags |= EV_EOF;
|
||
kn->kn_flags |= EV_EOF | EV_HUP;
|
||
ready = 1;
|
||
}
|
||
... | ... | |
kn->kn_data = 0;
|
||
if (wpb->state & PIPE_CLOSED) {
|
||
kn->kn_flags |= (EV_EOF | EV_NODATA);
|
||
kn->kn_flags |= EV_EOF | EV_HUP | EV_NODATA;
|
||
return (1);
|
||
}
|
||
... | ... | |
#endif
|
||
if (wpb->state & PIPE_WEOF) {
|
||
kn->kn_flags |= (EV_EOF | EV_NODATA);
|
||
kn->kn_flags |= EV_EOF | EV_HUP | EV_NODATA;
|
||
ready = 1;
|
||
}
|
||
sys/vfs/fifofs/fifo_vnops.c | ||
---|---|---|
so->so_state & SS_ISDISCONNECTED) {
|
||
if (kn->kn_data == 0)
|
||
kn->kn_flags |= EV_NODATA;
|
||
kn->kn_flags |= EV_EOF;
|
||
kn->kn_flags |= EV_EOF | EV_HUP;
|
||
lwkt_reltoken(&vp->v_token);
|
||
return (1);
|
||
}
|
||
kn->kn_flags &= ~(EV_EOF | EV_NODATA);
|
||
kn->kn_flags &= ~(EV_EOF | EV_HUP | EV_NODATA);
|
||
lwkt_reltoken(&vp->v_token);
|
||
return (kn->kn_data > 0);
|
||
}
|
||
... | ... | |
lwkt_gettoken(&vp->v_token);
|
||
kn->kn_data = ssb_space(&so->so_snd);
|
||
if (so->so_state & SS_ISDISCONNECTED) {
|
||
kn->kn_flags |= (EV_EOF | EV_NODATA);
|
||
kn->kn_flags |= EV_EOF | EV_HUP | EV_NODATA;
|
||
lwkt_reltoken(&vp->v_token);
|
||
return (1);
|
||
}
|
||
kn->kn_flags &= ~(EV_EOF | EV_NODATA);
|
||
kn->kn_flags &= ~(EV_EOF | EV_HUP | EV_NODATA);
|
||
lwkt_reltoken(&vp->v_token);
|
||
return (kn->kn_data >= so->so_snd.ssb_lowat);
|
||
}
|
- « Previous
- 1
- 2
- 3
- Next »