diff options
author | Max Romanov <max.romanov@nginx.com> | 2020-08-11 19:19:55 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2020-08-11 19:19:55 +0300 |
commit | ec3389b63bd7a9159d2be4a2863140f75095c7d3 (patch) | |
tree | f88972c19c713748b56c339dab1bdd60892eaeec /src/nxt_external.c | |
parent | 3a721e1d96720505d4d6638e77d2c296d962519c (diff) | |
download | unit-ec3389b63bd7a9159d2be4a2863140f75095c7d3.tar.gz unit-ec3389b63bd7a9159d2be4a2863140f75095c7d3.tar.bz2 |
Libunit refactoring: port management.
- Changed the port management callbacks to notifications, which e. g. avoids
the need to call the libunit function
- Added context and library instance reference counts for a safer resource
release
- Added the router main port initialization
Diffstat (limited to 'src/nxt_external.c')
-rw-r--r-- | src/nxt_external.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/nxt_external.c b/src/nxt_external.c index 6370a9c4..2471c812 100644 --- a/src/nxt_external.c +++ b/src/nxt_external.c @@ -69,7 +69,7 @@ nxt_external_start(nxt_task_t *task, nxt_process_data_t *data) nxt_str_t str; nxt_int_t rc; nxt_uint_t i, argc; - nxt_port_t *my_port, *main_port; + nxt_port_t *my_port, *main_port, *router_port; nxt_runtime_t *rt; nxt_conf_value_t *value; nxt_common_app_conf_t *conf; @@ -79,9 +79,12 @@ nxt_external_start(nxt_task_t *task, nxt_process_data_t *data) conf = data->app; main_port = rt->port_by_type[NXT_PROCESS_MAIN]; + router_port = rt->port_by_type[NXT_PROCESS_ROUTER]; my_port = nxt_runtime_port_find(rt, nxt_pid, 0); - if (nxt_slow_path(main_port == NULL || my_port == NULL)) { + if (nxt_slow_path(main_port == NULL || my_port == NULL + || router_port == NULL)) + { return NXT_ERROR; } @@ -90,6 +93,11 @@ nxt_external_start(nxt_task_t *task, nxt_process_data_t *data) return NXT_ERROR; } + rc = nxt_external_fd_no_cloexec(task, router_port->pair[1]); + if (nxt_slow_path(rc != NXT_OK)) { + return NXT_ERROR; + } + rc = nxt_external_fd_no_cloexec(task, my_port->pair[0]); if (nxt_slow_path(rc != NXT_OK)) { return NXT_ERROR; @@ -101,9 +109,11 @@ nxt_external_start(nxt_task_t *task, nxt_process_data_t *data) "%s;%uD;" "%PI,%ud,%d;" "%PI,%ud,%d;" + "%PI,%ud,%d;" "%d,%z,%Z", NXT_VERSION, my_port->process->stream, main_port->pid, main_port->id, main_port->pair[1], + router_port->pid, router_port->id, router_port->pair[1], my_port->pid, my_port->id, my_port->pair[0], 2, conf->shm_limit); |