| /* | |
| * Copyright (C) Igor Sysoev | |
| * Copyright (C) Nginx, Inc. | |
| */ | |
| #ifndef _NGX_PROCESS_H_INCLUDED_ | |
| #define _NGX_PROCESS_H_INCLUDED_ | |
| typedef DWORD ngx_pid_t; | |
| #define NGX_INVALID_PID 0 | |
| #define ngx_getpid GetCurrentProcessId | |
| #define ngx_log_pid ngx_pid | |
| #define NGX_PROCESS_SYNC_NAME \ | |
| (sizeof("ngx_cache_manager_mutex_") + NGX_INT32_LEN) | |
| typedef uint64_t ngx_cpuset_t; | |
| typedef struct { | |
| HANDLE handle; | |
| ngx_pid_t pid; | |
| char *name; | |
| HANDLE term; | |
| HANDLE quit; | |
| HANDLE reopen; | |
| u_char term_event[NGX_PROCESS_SYNC_NAME]; | |
| u_char quit_event[NGX_PROCESS_SYNC_NAME]; | |
| u_char reopen_event[NGX_PROCESS_SYNC_NAME]; | |
| unsigned just_spawn:1; | |
| unsigned exiting:1; | |
| } ngx_process_t; | |
| typedef struct { | |
| char *path; | |
| char *name; | |
| char *args; | |
| char *const *argv; | |
| char *const *envp; | |
| HANDLE child; | |
| } ngx_exec_ctx_t; | |
| ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, char *name, ngx_int_t respawn); | |
| ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); | |
| #define ngx_debug_point() | |
| #define ngx_sched_yield() SwitchToThread() | |
| #define NGX_MAX_PROCESSES (MAXIMUM_WAIT_OBJECTS - 4) | |
| #define NGX_PROCESS_RESPAWN -2 | |
| #define NGX_PROCESS_JUST_RESPAWN -3 | |
| extern int ngx_argc; | |
| extern char **ngx_argv; | |
| extern char **ngx_os_argv; | |
| extern ngx_int_t ngx_last_process; | |
| extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES]; | |
| extern ngx_pid_t ngx_pid; | |
| #endif /* _NGX_PROCESS_H_INCLUDED_ */ |