comparison src/os/unix/ngx_process.h @ 0:f0b350454894 NGINX_0_1_0

nginx 0.1.0 *) The first public version.
author Igor Sysoev <http://sysoev.ru>
date Mon, 04 Oct 2004 00:00:00 +0400
parents
children cc9f381affaa
comparison
equal deleted inserted replaced
-1:000000000000 0:f0b350454894
1
2 /*
3 * Copyright (C) Igor Sysoev
4 */
5
6
7 #ifndef _NGX_PROCESS_H_INCLUDED_
8 #define _NGX_PROCESS_H_INCLUDED_
9
10
11 typedef pid_t ngx_pid_t;
12
13 typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data);
14
15 typedef struct {
16 ngx_pid_t pid;
17 int status;
18 ngx_socket_t channel[2];
19
20 ngx_spawn_proc_pt proc;
21 void *data;
22 char *name;
23
24 unsigned respawn:1;
25 unsigned just_respawn:1;
26 unsigned detached:1;
27 unsigned exiting:1;
28 unsigned exited:1;
29 } ngx_process_t;
30
31
32 typedef struct {
33 char *path;
34 char *name;
35 char *const *argv;
36 char *const *envp;
37 } ngx_exec_ctx_t;
38
39
40 #define NGX_MAX_PROCESSES 1024
41
42 #define NGX_PROCESS_NORESPAWN -1
43 #define NGX_PROCESS_RESPAWN -2
44 #define NGX_PROCESS_JUST_RESPAWN -3
45 #define NGX_PROCESS_DETACHED -4
46
47
48 #define ngx_getpid getpid
49 #define ngx_log_pid ngx_pid
50
51 ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
52 ngx_spawn_proc_pt proc, void *data,
53 char *name, ngx_int_t respawn);
54 ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
55 void ngx_process_get_status(void);
56
57 #define ngx_sched_yield() sched_yield()
58
59
60 extern ngx_pid_t ngx_pid;
61 extern ngx_socket_t ngx_channel;
62 extern ngx_int_t ngx_process_slot;
63 extern ngx_int_t ngx_last_process;
64 extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
65
66
67 #endif /* _NGX_PROCESS_H_INCLUDED_ */