2004-09-28 16:34:51 +08:00
|
|
|
|
|
|
|
/*
|
2004-09-30 00:00:49 +08:00
|
|
|
* Copyright (C) Igor Sysoev
|
2004-09-28 16:34:51 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
2002-12-23 14:29:22 +08:00
|
|
|
#ifndef _NGX_PROCESS_H_INCLUDED_
|
|
|
|
#define _NGX_PROCESS_H_INCLUDED_
|
|
|
|
|
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
typedef DWORD ngx_pid_t;
|
|
|
|
#define NGX_INVALID_PID 0
|
2005-09-23 19:02:22 +08:00
|
|
|
|
2004-03-04 15:04:55 +08:00
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
#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_respawn:1;
|
|
|
|
unsigned exiting:1;
|
|
|
|
} ngx_process_t;
|
2004-03-04 15:04:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
2009-04-20 14:08:47 +08:00
|
|
|
char *path;
|
|
|
|
char *name;
|
|
|
|
char *const *argv;
|
|
|
|
char *const *envp;
|
|
|
|
HANDLE child;
|
2004-03-04 15:04:55 +08:00
|
|
|
} ngx_exec_ctx_t;
|
|
|
|
|
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
#define NGX_PROCESS_SINGLE 0
|
|
|
|
#define NGX_PROCESS_MASTER 1
|
|
|
|
#define NGX_PROCESS_WORKER 2
|
2004-03-04 15:04:55 +08:00
|
|
|
|
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, char *name, ngx_int_t respawn);
|
2004-03-05 00:34:23 +08:00
|
|
|
ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
|
2004-03-04 15:04:55 +08:00
|
|
|
|
2004-11-11 22:07:14 +08:00
|
|
|
#define ngx_debug_point()
|
2009-04-20 14:08:47 +08:00
|
|
|
#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
|
|
|
|
|
2004-06-30 23:30:41 +08:00
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
extern int ngx_argc;
|
|
|
|
extern char **ngx_argv;
|
|
|
|
extern char **ngx_os_argv;
|
2004-06-30 23:30:41 +08:00
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
extern ngx_int_t ngx_last_process;
|
|
|
|
extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
|
2004-03-04 15:04:55 +08:00
|
|
|
|
2009-04-20 14:08:47 +08:00
|
|
|
extern ngx_pid_t ngx_pid;
|
2002-12-23 14:29:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
#endif /* _NGX_PROCESS_H_INCLUDED_ */
|