Request-app link introduced to prevent mp destroy for penging requests.

nxt_req_conn_link_t still used for lookup connection by request id.
New nxt_req_app_link_t (ra) allocated from conn->mem_pool using mp_retain().
ra stored in app->requests if there is no free worker to process request.
This commit is contained in:
Max Romanov
2017-07-18 00:21:28 +03:00
parent 31e5992f88
commit 6b6fefa497
4 changed files with 305 additions and 128 deletions

View File

@@ -41,6 +41,8 @@ nxt_port_new(nxt_port_id_t id, nxt_pid_t pid, nxt_process_type_t type)
nxt_mp_destroy(mp);
}
nxt_thread_log_debug("port %p %d:%d new, type %d", port, pid, id, type);
return port;
}
@@ -48,6 +50,9 @@ nxt_port_new(nxt_port_id_t id, nxt_pid_t pid, nxt_process_type_t type)
nxt_bool_t
nxt_port_release(nxt_port_t *port)
{
nxt_thread_log_debug("port %p %d:%d release, type %d", port, port->pid,
port->id, port->type);
if (port->pair[0] != -1) {
nxt_fd_close(port->pair[0]);
port->pair[0] = -1;