Instead of keeping an extra reference to the underlying `uv_stream` you could simply `uv_close` `channel->data.streams.read->stream` and set it to `NULL` here. Both approaches break encapsulation, this one has the advantage we don't have to keep an extra reference in sync with the UV streams inside `{R,W}Stream`.