diff options
Diffstat (limited to 'src/packet_stream.c')
| -rw-r--r-- | src/packet_stream.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/packet_stream.c b/src/packet_stream.c index 0cf296c..7868242 100644 --- a/src/packet_stream.c +++ b/src/packet_stream.c @@ -31,13 +31,6 @@ static void stop_write_internal(struct nn_packet_stream *stream) ev_io_stop(stream->loop->ev, &stream->wevent); } -static void shutdown_internal(struct nn_packet_stream *stream) -{ - stream->connect = PACKET_STREAM_DISCONNECTING; - // This assumes select()/poll() will return after shutdown(). - nn_socket_shutdown(&stream->sock); -} - static void discard_out_queue_internal(struct nn_packet_stream *stream) { // stream->out.running can be true here. The stream will stop the @@ -352,7 +345,9 @@ void nn_packet_stream_disconnect(struct nn_packet_stream *stream) // This relies on stream_read_callback() to resolve and call stop_internal(). // Note that read() can still return data after shutdown(). This is why we have to // check if connect = DISCONNECTING in send_packet(). - shutdown_internal(stream); + stream->connect = PACKET_STREAM_DISCONNECTING; + // This assumes select()/poll() will return after shutdown(). + nn_socket_shutdown(&stream->sock); } } |