summaryrefslogtreecommitdiffhomepage
path: root/src/nodejs
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2021-10-28 17:46:54 +0300
committerMax Romanov <max.romanov@nginx.com>2021-10-28 17:46:54 +0300
commitbba97134e983541e94cf73e93900729e3a3e61fc (patch)
treece0322c432f1d08cd302209f1403fab112788b2c /src/nodejs
parent803e0373029a80994a85781d0b73b6cfa95bcf5a (diff)
downloadunit-bba97134e983541e94cf73e93900729e3a3e61fc.tar.gz
unit-bba97134e983541e94cf73e93900729e3a3e61fc.tar.bz2
Moving request limit control to libunit.
Introducting application graceful stop. For now only used when application process reach request limit value. This closes #585 issue on GitHub.
Diffstat (limited to 'src/nodejs')
-rw-r--r--src/nodejs/unit-http/unit.cpp4
-rw-r--r--src/nodejs/unit-http/unit.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/nodejs/unit-http/unit.cpp b/src/nodejs/unit-http/unit.cpp
index 589eca3f..ee5dc46f 100644
--- a/src/nodejs/unit-http/unit.cpp
+++ b/src/nodejs/unit-http/unit.cpp
@@ -519,11 +519,11 @@ Unit::add_port(nxt_unit_ctx_t *ctx, nxt_unit_port_t *port)
void
-Unit::remove_port(nxt_unit_t *unit, nxt_unit_port_t *port)
+Unit::remove_port(nxt_unit_t *unit, nxt_unit_ctx_t *ctx, nxt_unit_port_t *port)
{
port_data_t *data;
- if (port->data != NULL) {
+ if (port->data != NULL && ctx != NULL) {
data = (port_data_t *) port->data;
data->stop();
diff --git a/src/nodejs/unit-http/unit.h b/src/nodejs/unit-http/unit.h
index 4ef40d45..1aa93073 100644
--- a/src/nodejs/unit-http/unit.h
+++ b/src/nodejs/unit-http/unit.h
@@ -41,7 +41,8 @@ private:
void shm_ack_handler(nxt_unit_ctx_t *ctx);
static int add_port(nxt_unit_ctx_t *ctx, nxt_unit_port_t *port);
- static void remove_port(nxt_unit_t *unit, nxt_unit_port_t *port);
+ static void remove_port(nxt_unit_t *unit, nxt_unit_ctx_t *ctx,
+ nxt_unit_port_t *port);
static void quit_cb(nxt_unit_ctx_t *ctx);
void quit(nxt_unit_ctx_t *ctx);