summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/handle_wrap.h3
-rw-r--r--src/stream_wrap.cc5
-rw-r--r--src/stream_wrap.h2
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,