class EventMachine::Synchrony::TCPSocket
def send(msg, flags)
def send(msg, flags) raise "Unknown flags in send(): #{flags}" if flags.nonzero? # write(X) on a socket after #close, raises IOError with message "closed stream" # send(X,0) on a socket after #close, raises IOError with message "closed stream" raise IOError, "closed stream" if @closed # the first write(X) on a remotely closed socket, <= than some buffer size, generates no error # the first write(X) on a remotely closed socket, > than some buffer size, generates no error # (on my box this buffer appears to be 80KB) # further write(X) on a remotely closed socket, raises Errno::EPIPE # the first send(X,0) on a remotely closed socket, <= than some buffer size, generates no error # the first send(X,0) on a remotely closed socket, > than some buffer size, generates no error # (on my box this buffer appears to be 80KB) # further send(X,0) on a remotely closed socket, raises Errno::EPIPE raise Errno::EPIPE if @remote_closed len = msg.bytesize # write(X) on an open socket, where the remote end closes during the write, raises Errno::EPIPE # send(X,0) on an open socket, where the remote end closes during the write, raises Errno::EPIPE write_data(msg) or sync(:out) or raise(Errno::EPIPE) len end