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 | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 15 | #define NGX_DEBUG_POINTS_STOP 1 |
| 16 | #define NGX_DEBUG_POINTS_ABORT 2 |
| 17 | |
| 18 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 19 | struct ngx_cycle_s { |
| 20 | void ****conf_ctx; |
| 21 | ngx_pool_t *pool; |
Igor Sysoev | 68df19d | 2004-04-15 15:34:36 +0000 | [diff] [blame] | 22 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 23 | ngx_log_t *log; |
Igor Sysoev | 68df19d | 2004-04-15 15:34:36 +0000 | [diff] [blame] | 24 | ngx_log_t *new_log; |
| 25 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 26 | ngx_array_t listening; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 27 | ngx_array_t pathes; |
Igor Sysoev | b9e3441 | 2004-09-03 15:50:30 +0000 | [diff] [blame] | 28 | ngx_list_t open_files; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 29 | |
Igor Sysoev | 10a543a | 2004-03-16 07:10:12 +0000 | [diff] [blame] | 30 | ngx_uint_t connection_n; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 31 | ngx_connection_t *connections; |
| 32 | ngx_event_t *read_events; |
| 33 | ngx_event_t *write_events; |
| 34 | |
| 35 | ngx_cycle_t *old_cycle; |
| 36 | |
Igor Sysoev | e9b2cb1 | 2004-02-09 20:47:18 +0000 | [diff] [blame] | 37 | ngx_str_t conf_file; |
Igor Sysoev | ab517d5 | 2004-05-18 15:29:08 +0000 | [diff] [blame] | 38 | ngx_str_t root; |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 39 | }; |
| 40 | |
| 41 | |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 42 | typedef struct { |
| 43 | ngx_flag_t daemon; |
| 44 | ngx_flag_t master; |
Igor Sysoev | a741f8d | 2004-03-30 20:31:58 +0000 | [diff] [blame] | 45 | |
| 46 | ngx_int_t worker_processes; |
Igor Sysoev | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 47 | ngx_int_t debug_points; |
Igor Sysoev | a741f8d | 2004-03-30 20:31:58 +0000 | [diff] [blame] | 48 | |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 49 | ngx_uid_t user; |
| 50 | ngx_gid_t group; |
Igor Sysoev | a741f8d | 2004-03-30 20:31:58 +0000 | [diff] [blame] | 51 | |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 52 | ngx_str_t pid; |
| 53 | ngx_str_t newpid; |
Igor Sysoev | 32fcd5c | 2004-07-05 06:55:54 +0000 | [diff] [blame] | 54 | |
| 55 | #if (NGX_THREADS) |
| 56 | ngx_int_t worker_threads; |
| 57 | size_t thread_stack_size; |
| 58 | #endif |
| 59 | |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 60 | } ngx_core_conf_t; |
| 61 | |
| 62 | |
Igor Sysoev | 2b97993 | 2004-07-07 15:01:00 +0000 | [diff] [blame] | 63 | typedef struct { |
| 64 | ngx_pool_t *pool; /* pcre's malloc() pool */ |
| 65 | } ngx_core_tls_t; |
| 66 | |
| 67 | |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 68 | ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle); |
Igor Sysoev | 43f1319 | 2004-04-12 16:38:09 +0000 | [diff] [blame] | 69 | ngx_int_t ngx_create_pidfile(ngx_cycle_t *cycle, ngx_cycle_t *old_cycle); |
| 70 | void ngx_delete_pidfile(ngx_cycle_t *cycle); |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 71 | void ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user); |
| 72 | 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] | 73 | |
| 74 | |
| 75 | extern volatile ngx_cycle_t *ngx_cycle; |
| 76 | extern ngx_array_t ngx_old_cycles; |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 77 | extern ngx_module_t ngx_core_module; |
Igor Sysoev | 630ad0c | 2004-04-16 05:14:16 +0000 | [diff] [blame] | 78 | extern ngx_uint_t ngx_test_config; |
Igor Sysoev | 2b97993 | 2004-07-07 15:01:00 +0000 | [diff] [blame] | 79 | #if (NGX_THREADS) |
| 80 | extern ngx_tls_key_t ngx_core_tls_key; |
| 81 | #endif |
Igor Sysoev | 3c3ca17 | 2004-01-05 20:55:48 +0000 | [diff] [blame] | 82 | |
| 83 | |
| 84 | #endif /* _NGX_CYCLE_H_INCLUDED_ */ |