summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorAlexander Borisov <alexander.borisov@nginx.com>2018-11-15 15:24:45 +0300
committerAlexander Borisov <alexander.borisov@nginx.com>2018-11-15 15:24:45 +0300
commit71f4cb91340b656397eaaa356755b4a1e31c8010 (patch)
tree313983835d7afad1775f9233afaab2eeea1be573 /src
parentb033fb329fc14e6469596821508c487e3ed6ff82 (diff)
downloadunit-71f4cb91340b656397eaaa356755b4a1e31c8010.tar.gz
unit-71f4cb91340b656397eaaa356755b4a1e31c8010.tar.bz2
Node.js: added reference count increment for the Unit object.
We increase the number to the Unit object so that it lives forever. This is necessary so that the garbage collector does not delete the Unit object.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/nodejs/unit-http/http_server.js2
-rw-r--r--src/nodejs/unit-http/unit.cpp11
2 files changed, 13 insertions, 0 deletions
diff --git a/src/nodejs/unit-http/http_server.js b/src/nodejs/unit-http/http_server.js
index ddacb420..b35ad259 100755
--- a/src/nodejs/unit-http/http_server.js
+++ b/src/nodejs/unit-http/http_server.js
@@ -333,6 +333,8 @@ Server.prototype.run_events = function (server, req, res) {
});
Promise.resolve().then(() => {
+ req.emit("finish");
+
if (res.finished) {
unit_lib.unit_response_end(res);
}
diff --git a/src/nodejs/unit-http/unit.cpp b/src/nodejs/unit-http/unit.cpp
index 97238834..bc6fc7db 100644
--- a/src/nodejs/unit-http/unit.cpp
+++ b/src/nodejs/unit-http/unit.cpp
@@ -111,6 +111,7 @@ napi_value
Unit::create(napi_env env, napi_callback_info info)
{
Unit *obj;
+ napi_ref ref;
napi_value target, cons, instance, jsthis;
napi_status status;
@@ -135,6 +136,11 @@ Unit::create(napi_env env, napi_callback_info info)
goto failed;
}
+ status = napi_create_reference(env, jsthis, 1, &ref);
+ if (status != napi_ok) {
+ goto failed;
+ }
+
return jsthis;
}
@@ -149,6 +155,11 @@ Unit::create(napi_env env, napi_callback_info info)
goto failed;
}
+ status = napi_create_reference(env, instance, 1, &ref);
+ if (status != napi_ok) {
+ goto failed;
+ }
+
return instance;
failed: