diff options
-rw-r--r-- | src/handle_wrap.h | 3 | ||||
-rw-r--r-- | src/stream_wrap.cc | 5 | ||||
-rw-r--r-- | src/stream_wrap.h | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/handle_wrap.h b/src/handle_wrap.h index fd2d002dce..b2b09f5010 100644 --- a/src/handle_wrap.h +++ b/src/handle_wrap.h @@ -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, diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index 0e700ba39a..cdcbe574f9 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -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, diff --git a/src/stream_wrap.h b/src/stream_wrap.h index 7847ebe754..94a161b6d5 100644 --- a/src/stream_wrap.h +++ b/src/stream_wrap.h @@ -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, |