src: always call ReadStop() before Close()
For libuv-backed streams, always explicitly stop reading before closing the handle. PR-URL: https://github.com/nodejs/node/pull/19377 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
5d70459606
commit
2b3150466e
@ -70,7 +70,8 @@ class HandleWrap : public AsyncWrap {
|
||||
|
||||
inline uv_handle_t* GetHandle() const { return handle_; }
|
||||
|
||||
void Close(v8::Local<v8::Value> close_callback = v8::Local<v8::Value>());
|
||||
virtual void Close(
|
||||
v8::Local<v8::Value> close_callback = v8::Local<v8::Value>());
|
||||
|
||||
protected:
|
||||
HandleWrap(Environment* env,
|
||||
|
@ -373,6 +373,11 @@ void LibuvStreamWrap::AfterUvWrite(uv_write_t* req, int status) {
|
||||
req_wrap->Done(status);
|
||||
}
|
||||
|
||||
void LibuvStreamWrap::Close(v8::Local<v8::Value> close_callback) {
|
||||
ReadStop();
|
||||
HandleWrap::Close(close_callback);
|
||||
}
|
||||
|
||||
} // namespace node
|
||||
|
||||
NODE_BUILTIN_MODULE_CONTEXT_AWARE(stream_wrap,
|
||||
|
@ -76,6 +76,8 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase {
|
||||
ShutdownWrap* CreateShutdownWrap(v8::Local<v8::Object> object) override;
|
||||
WriteWrap* CreateWriteWrap(v8::Local<v8::Object> object) override;
|
||||
|
||||
void Close(v8::Local<v8::Value> close_callback) override;
|
||||
|
||||
protected:
|
||||
LibuvStreamWrap(Environment* env,
|
||||
v8::Local<v8::Object> object,
|
||||
|
Loading…
x
Reference in New Issue
Block a user