1e18a033bSKonstantin Ananyev
2e18a033bSKonstantin Ananyev/*
3e18a033bSKonstantin Ananyev * Copyright (C) Igor Sysoev
4e18a033bSKonstantin Ananyev * Copyright (C) Nginx, Inc.
5e18a033bSKonstantin Ananyev */
6e18a033bSKonstantin Ananyev
7e18a033bSKonstantin Ananyev
8e18a033bSKonstantin Ananyev#ifndef _NGX_PROCESS_CYCLE_H_INCLUDED_
9e18a033bSKonstantin Ananyev#define _NGX_PROCESS_CYCLE_H_INCLUDED_
10e18a033bSKonstantin Ananyev
11e18a033bSKonstantin Ananyev
12e18a033bSKonstantin Ananyev#include <ngx_config.h>
13e18a033bSKonstantin Ananyev#include <ngx_core.h>
14e18a033bSKonstantin Ananyev
15e18a033bSKonstantin Ananyev
16e18a033bSKonstantin Ananyev#define NGX_CMD_OPEN_CHANNEL   1
17e18a033bSKonstantin Ananyev#define NGX_CMD_CLOSE_CHANNEL  2
18e18a033bSKonstantin Ananyev#define NGX_CMD_QUIT           3
19e18a033bSKonstantin Ananyev#define NGX_CMD_TERMINATE      4
20e18a033bSKonstantin Ananyev#define NGX_CMD_REOPEN         5
21e18a033bSKonstantin Ananyev
22e18a033bSKonstantin Ananyev
23e18a033bSKonstantin Ananyev#define NGX_PROCESS_SINGLE     0
24e18a033bSKonstantin Ananyev#define NGX_PROCESS_MASTER     1
25e18a033bSKonstantin Ananyev#define NGX_PROCESS_SIGNALLER  2
26e18a033bSKonstantin Ananyev#define NGX_PROCESS_WORKER     3
27e18a033bSKonstantin Ananyev#define NGX_PROCESS_HELPER     4
28e18a033bSKonstantin Ananyev
29e18a033bSKonstantin Ananyev
30e18a033bSKonstantin Ananyevtypedef struct {
31e18a033bSKonstantin Ananyev    ngx_event_handler_pt       handler;
32e18a033bSKonstantin Ananyev    char                      *name;
33e18a033bSKonstantin Ananyev    ngx_msec_t                 delay;
34e18a033bSKonstantin Ananyev} ngx_cache_manager_ctx_t;
35e18a033bSKonstantin Ananyev
36e18a033bSKonstantin Ananyev
37e18a033bSKonstantin Ananyevvoid ngx_master_process_cycle(ngx_cycle_t *cycle);
38e18a033bSKonstantin Ananyevvoid ngx_single_process_cycle(ngx_cycle_t *cycle);
39e18a033bSKonstantin Ananyev
40e18a033bSKonstantin Ananyev
41e18a033bSKonstantin Ananyevextern ngx_uint_t      ngx_process;
42e18a033bSKonstantin Ananyevextern ngx_uint_t      ngx_worker;
43e18a033bSKonstantin Ananyevextern ngx_pid_t       ngx_pid;
44e18a033bSKonstantin Ananyevextern ngx_pid_t       ngx_new_binary;
45e18a033bSKonstantin Ananyevextern ngx_uint_t      ngx_inherited;
46e18a033bSKonstantin Ananyevextern ngx_uint_t      ngx_daemonized;
47e18a033bSKonstantin Ananyevextern ngx_uint_t      ngx_exiting;
48e18a033bSKonstantin Ananyev
49e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_reap;
50e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_sigio;
51e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_sigalrm;
52e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_quit;
53e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_debug_quit;
54e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_terminate;
55e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_noaccept;
56e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_reconfigure;
57e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_reopen;
58e18a033bSKonstantin Ananyevextern sig_atomic_t    ngx_change_binary;
59e18a033bSKonstantin Ananyev
60e18a033bSKonstantin Ananyev
61e18a033bSKonstantin Ananyev#endif /* _NGX_PROCESS_CYCLE_H_INCLUDED_ */
62