summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nxt_process.c')
-rw-r--r--src/nxt_process.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/nxt_process.c b/src/nxt_process.c
index 035f747f..4179844b 100644
--- a/src/nxt_process.c
+++ b/src/nxt_process.c
@@ -591,17 +591,6 @@ nxt_process_close_ports(nxt_task_t *task, nxt_process_t *process)
void
-nxt_process_connected_port_add(nxt_process_t *process, nxt_port_t *port)
-{
- nxt_thread_mutex_lock(&process->cp_mutex);
-
- nxt_port_hash_add(&process->connected_ports, port);
-
- nxt_thread_mutex_unlock(&process->cp_mutex);
-}
-
-
-void
nxt_process_connected_port_remove(nxt_process_t *process, nxt_port_t *port)
{
nxt_thread_mutex_lock(&process->cp_mutex);
@@ -613,14 +602,17 @@ nxt_process_connected_port_remove(nxt_process_t *process, nxt_port_t *port)
nxt_port_t *
-nxt_process_connected_port_find(nxt_process_t *process, nxt_pid_t pid,
- nxt_port_id_t port_id)
+nxt_process_connected_port_find_add(nxt_process_t *process, nxt_port_t *port)
{
nxt_port_t *res;
nxt_thread_mutex_lock(&process->cp_mutex);
- res = nxt_port_hash_find(&process->connected_ports, pid, port_id);
+ res = nxt_port_hash_find(&process->connected_ports, port->pid, port->id);
+
+ if (nxt_slow_path(res == NULL)) {
+ nxt_port_hash_add(&process->connected_ports, port);
+ }
nxt_thread_mutex_unlock(&process->cp_mutex);