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_; }
|
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:
|
protected:
|
||||||
HandleWrap(Environment* env,
|
HandleWrap(Environment* env,
|
||||||
|
@ -373,6 +373,11 @@ void LibuvStreamWrap::AfterUvWrite(uv_write_t* req, int status) {
|
|||||||
req_wrap->Done(status);
|
req_wrap->Done(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LibuvStreamWrap::Close(v8::Local<v8::Value> close_callback) {
|
||||||
|
ReadStop();
|
||||||
|
HandleWrap::Close(close_callback);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace node
|
} // namespace node
|
||||||
|
|
||||||
NODE_BUILTIN_MODULE_CONTEXT_AWARE(stream_wrap,
|
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;
|
ShutdownWrap* CreateShutdownWrap(v8::Local<v8::Object> object) override;
|
||||||
WriteWrap* CreateWriteWrap(v8::Local<v8::Object> object) override;
|
WriteWrap* CreateWriteWrap(v8::Local<v8::Object> object) override;
|
||||||
|
|
||||||
|
void Close(v8::Local<v8::Value> close_callback) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LibuvStreamWrap(Environment* env,
|
LibuvStreamWrap(Environment* env,
|
||||||
v8::Local<v8::Object> object,
|
v8::Local<v8::Object> object,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user