nxt_process.c (341:5e1a9c009968) nxt_process.c (343:9fa845db60fb)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8#include <nxt_main_process.h>

--- 44 unchanged lines hidden (view full) ---

53 nxt_event_engine_thread_adopt(task->thread->engine);
54
55 /* Remove not ready processes */
56 nxt_runtime_process_each(rt, p) {
57
58 if (!p->ready) {
59 nxt_debug(task, "remove not ready process %PI", p->pid);
60
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8#include <nxt_main_process.h>

--- 44 unchanged lines hidden (view full) ---

53 nxt_event_engine_thread_adopt(task->thread->engine);
54
55 /* Remove not ready processes */
56 nxt_runtime_process_each(rt, p) {
57
58 if (!p->ready) {
59 nxt_debug(task, "remove not ready process %PI", p->pid);
60
61 nxt_runtime_process_remove(rt, p);
61 nxt_runtime_process_remove(task, p);
62
63 } else {
64 nxt_port_mmaps_destroy(p->incoming, 0);
65 nxt_port_mmaps_destroy(p->outgoing, 0);
66 }
67
68 } nxt_runtime_process_loop;
69
62
63 } else {
64 nxt_port_mmaps_destroy(p->incoming, 0);
65 nxt_port_mmaps_destroy(p->outgoing, 0);
66 }
67
68 } nxt_runtime_process_loop;
69
70 nxt_runtime_process_add(rt, process);
70 nxt_runtime_process_add(task, process);
71
72 nxt_process_start(task, process);
73
74 process->ready = 1;
75
76 break;
77
78 default:
79 /* A parent. */
80 nxt_debug(task, "fork(\"%s\"): %PI", process->init->name, pid);
81
82 process->pid = pid;
83
71
72 nxt_process_start(task, process);
73
74 process->ready = 1;
75
76 break;
77
78 default:
79 /* A parent. */
80 nxt_debug(task, "fork(\"%s\"): %PI", process->init->name, pid);
81
82 process->pid = pid;
83
84 nxt_runtime_process_add(rt, process);
84 nxt_runtime_process_add(task, process);
85
86 break;
87 }
88
89 return pid;
90}
91
92

--- 491 unchanged lines hidden (view full) ---

584
585 return NXT_OK;
586}
587
588
589static void
590nxt_process_port_mp_cleanup(nxt_task_t *task, void *obj, void *data)
591{
85
86 break;
87 }
88
89 return pid;
90}
91
92

--- 491 unchanged lines hidden (view full) ---

584
585 return NXT_OK;
586}
587
588
589static void
590nxt_process_port_mp_cleanup(nxt_task_t *task, void *obj, void *data)
591{
592 nxt_runtime_t *rt;
593 nxt_process_t *process;
594
595 process = obj;
592 nxt_process_t *process;
593
594 process = obj;
596 rt = data;
597
598 process->port_cleanups--;
599
600 if (process->port_cleanups == 0) {
595
596 process->port_cleanups--;
597
598 if (process->port_cleanups == 0) {
601 nxt_runtime_process_remove(rt, process);
599 nxt_runtime_process_remove(task, process);
602 }
603}
604
605void
606nxt_process_port_add(nxt_task_t *task, nxt_process_t *process, nxt_port_t *port)
607{
608 port->process = process;
609 nxt_queue_insert_tail(&process->ports, &port->link);
610
611 nxt_mp_cleanup(port->mem_pool, nxt_process_port_mp_cleanup, task, process,
600 }
601}
602
603void
604nxt_process_port_add(nxt_task_t *task, nxt_process_t *process, nxt_port_t *port)
605{
606 port->process = process;
607 nxt_queue_insert_tail(&process->ports, &port->link);
608
609 nxt_mp_cleanup(port->mem_pool, nxt_process_port_mp_cleanup, task, process,
612 task->thread->runtime);
610 NULL);
613 process->port_cleanups++;
614}
615
616
617void
618nxt_process_connected_port_add(nxt_process_t *process, nxt_port_t *port)
619{
620 nxt_thread_mutex_lock(&process->cp_mutex);

--- 30 unchanged lines hidden ---
611 process->port_cleanups++;
612}
613
614
615void
616nxt_process_connected_port_add(nxt_process_t *process, nxt_port_t *port)
617{
618 nxt_thread_mutex_lock(&process->cp_mutex);

--- 30 unchanged lines hidden ---