Method: BasicSocket#close_write
- Defined in:
- basicsocket.c
#close_write ⇒ nil
Disallows further write using shutdown system call.
UNIXSocket.pair {|s1, s2|
s1.print "ping"
s1.close_write
p s2.read #=> "ping"
s2.print "pong"
s2.close
p s1.read #=> "pong"
}
125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'basicsocket.c', line 125
static VALUE
bsock_close_write(VALUE sock)
{
rb_io_t *fptr;
GetOpenFile(sock, fptr);
if (!(fptr->mode & FMODE_READABLE)) {
return rb_io_close(sock);
}
shutdown(fptr->fd, 1);
fptr->mode &= ~FMODE_WRITABLE;
return Qnil;
}
|