Igor Sysoev | d90282d | 2004-09-28 08:34:51 +0000 | [diff] [blame] | 1 | |
| 2 | /* |
Igor Sysoev | ff8da91 | 2004-09-29 16:00:49 +0000 | [diff] [blame] | 3 | * Copyright (C) Igor Sysoev |
Igor Sysoev | d90282d | 2004-09-28 08:34:51 +0000 | [diff] [blame] | 4 | */ |
| 5 | |
| 6 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 7 | #ifndef _NGX_CYCLE_H_INCLUDED_ |
| 8 | #define _NGX_CYCLE_H_INCLUDED_ |
| 9 | |
| 10 | |
| 11 | #include <ngx_config.h> |
| 12 | #include <ngx_core.h> |
| 13 | |
| 14 | |
Igor Sysoev | 02f742b | 2005-04-08 15:18:55 +0000 | [diff] [blame] | 15 | #ifndef NGX_CYCLE_POOL_SIZE |
| 16 | #define NGX_CYCLE_POOL_SIZE 16384 |
| 17 | #endif |
| 18 | |
| 19 | |
Igor Sysoev | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 20 | #define NGX_DEBUG_POINTS_STOP 1 |
| 21 | #define NGX_DEBUG_POINTS_ABORT 2 |
| 22 | |
| 23 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 24 | struct ngx_cycle_s { |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 25 | void ****conf_ctx; |
| 26 | ngx_pool_t *pool; |
Igor Sysoev | 68df19d | 2004-04-15 15:34:36 +0000 | [diff] [blame] | 27 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 28 | ngx_log_t *log; |
| 29 | ngx_log_t *new_log; |
Igor Sysoev | 68df19d | 2004-04-15 15:34:36 +0000 | [diff] [blame] | 30 | |
Igor Sysoev | 31eb8c0 | 2005-09-23 11:02:22 +0000 | [diff] [blame^] | 31 | ngx_connection_t **files; |
| 32 | ngx_connection_t *free_connections; |
| 33 | ngx_uint_t free_connection_n; |
| 34 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 35 | ngx_array_t listening; |
| 36 | ngx_array_t pathes; |
| 37 | ngx_list_t open_files; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 38 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 39 | ngx_uint_t connection_n; |
Igor Sysoev | 31eb8c0 | 2005-09-23 11:02:22 +0000 | [diff] [blame^] | 40 | ngx_uint_t files_n; |
| 41 | |
| 42 | ngx_connection_t *connections0; |
| 43 | ngx_event_t *read_events0; |
| 44 | ngx_event_t *write_events0; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 45 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 46 | ngx_cycle_t *old_cycle; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 47 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 48 | ngx_str_t conf_file; |
| 49 | ngx_str_t root; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 50 | }; |
| 51 | |
| 52 | |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 53 | typedef struct { |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 54 | ngx_flag_t daemon; |
| 55 | ngx_flag_t master; |
Igor Sysoev | a741f8d | 2004-03-30 20:31:58 +0000 | [diff] [blame] | 56 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 57 | ngx_int_t worker_processes; |
| 58 | ngx_int_t debug_points; |
Igor Sysoev | a741f8d | 2004-03-30 20:31:58 +0000 | [diff] [blame] | 59 | |
Igor Sysoev | 31eb8c0 | 2005-09-23 11:02:22 +0000 | [diff] [blame^] | 60 | ngx_int_t rlimit_nofile; |
| 61 | ngx_int_t rlimit_sigpending; |
| 62 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 63 | int priority; |
Igor Sysoev | a741f8d | 2004-03-30 20:31:58 +0000 | [diff] [blame] | 64 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 65 | char *username; |
| 66 | ngx_uid_t user; |
| 67 | ngx_gid_t group; |
| 68 | |
Igor Sysoev | 7b190b4 | 2005-06-07 15:56:31 +0000 | [diff] [blame] | 69 | ngx_str_t working_directory; |
| 70 | |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 71 | ngx_str_t pid; |
Igor Sysoev | 31eb8c0 | 2005-09-23 11:02:22 +0000 | [diff] [blame^] | 72 | ngx_str_t oldpid; |
Igor Sysoev | 32fcd5c | 2004-07-05 06:55:54 +0000 | [diff] [blame] | 73 | |
| 74 | #if (NGX_THREADS) |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 75 | ngx_int_t worker_threads; |
| 76 | size_t thread_stack_size; |
Igor Sysoev | 32fcd5c | 2004-07-05 06:55:54 +0000 | [diff] [blame] | 77 | #endif |
| 78 | |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 79 | } ngx_core_conf_t; |
| 80 | |
| 81 | |
Igor Sysoev | 2b97993 | 2004-07-07 15:01:00 +0000 | [diff] [blame] | 82 | typedef struct { |
Igor Sysoev | 42b12b3 | 2004-12-02 18:40:46 +0000 | [diff] [blame] | 83 | ngx_pool_t *pool; /* pcre's malloc() pool */ |
Igor Sysoev | 2b97993 | 2004-07-07 15:01:00 +0000 | [diff] [blame] | 84 | } ngx_core_tls_t; |
| 85 | |
| 86 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 87 | ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle); |
Igor Sysoev | 43f1319 | 2004-04-12 16:38:09 +0000 | [diff] [blame] | 88 | ngx_int_t ngx_create_pidfile(ngx_cycle_t *cycle, ngx_cycle_t *old_cycle); |
| 89 | void ngx_delete_pidfile(ngx_cycle_t *cycle); |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 90 | void ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user); |
| 91 | ngx_pid_t ngx_exec_new_binary(ngx_cycle_t *cycle, char *const *argv); |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 92 | |
| 93 | |
| 94 | extern volatile ngx_cycle_t *ngx_cycle; |
| 95 | extern ngx_array_t ngx_old_cycles; |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 96 | extern ngx_module_t ngx_core_module; |
Igor Sysoev | 630ad0c | 2004-04-16 05:14:16 +0000 | [diff] [blame] | 97 | extern ngx_uint_t ngx_test_config; |
Igor Sysoev | 2b97993 | 2004-07-07 15:01:00 +0000 | [diff] [blame] | 98 | #if (NGX_THREADS) |
| 99 | extern ngx_tls_key_t ngx_core_tls_key; |
| 100 | #endif |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 101 | |
| 102 | |
| 103 | #endif /* _NGX_CYCLE_H_INCLUDED_ */ |