3 * Copyright (C) Igor Sysoev
7 #ifndef _NGX_PROCESS_H_INCLUDED_
8 #define _NGX_PROCESS_H_INCLUDED_
11 #include <ngx_setproctitle.h>
14 typedef pid_t ngx_pid_t;
16 #define NGX_INVALID_PID -1
18 typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data);
23 ngx_socket_t channel[2];
25 ngx_spawn_proc_pt proc;
30 unsigned just_respawn:1;
45 #define NGX_MAX_PROCESSES 1024
47 #define NGX_PROCESS_NORESPAWN -1
48 #define NGX_PROCESS_RESPAWN -2
49 #define NGX_PROCESS_JUST_RESPAWN -3
50 #define NGX_PROCESS_DETACHED -4
53 #define ngx_getpid getpid
56 #define ngx_log_pid ngx_pid
60 ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
61 ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn);
62 ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
63 ngx_int_t ngx_init_signals(ngx_log_t *log);
64 void ngx_debug_point(void);
67 #if (NGX_HAVE_SCHED_YIELD)
68 #define ngx_sched_yield() sched_yield()
70 #define ngx_sched_yield() usleep(1)
75 extern char **ngx_argv;
76 extern char **ngx_os_argv;
78 extern ngx_pid_t ngx_pid;
79 extern ngx_socket_t ngx_channel;
80 extern ngx_int_t ngx_process_slot;
81 extern ngx_int_t ngx_last_process;
82 extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
85 #endif /* _NGX_PROCESS_H_INCLUDED_ */