mirror of
https://github.com/nginx/nginx.git
synced 2024-12-16 06:09:00 +08:00
75 lines
1.8 KiB
C
75 lines
1.8 KiB
C
|
|
/*
|
|
* Copyright (C) Igor Sysoev
|
|
*/
|
|
|
|
|
|
#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 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() Sleep(0)
|
|
|
|
|
|
#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_ */
|