Mercurial > hg > nginx-vendor-current
view src/os/unix/ngx_process.h @ 604:428c6e58046a NGINX_0_9_0
nginx 0.9.0
*) Feature: the "keepalive_disable" directive.
*) Feature: the "map" directive supports variables as value of a
defined variable.
*) Feature: the "map" directive supports empty strings as value of the
first parameter.
*) Feature: the "map" directive supports expressions as the first
parameter.
*) Feature: nginx(8) manual page.
Thanks to Sergey Osokin.
*) Feature: Linux accept4() support.
Thanks to Simon Liu.
*) Workaround: elimination of Linux linker warning about "sys_errlist"
and "sys_nerr"; the warning had appeared in 0.8.35.
*) Bugfix: a segmentation fault might occur in a worker process, if the
"auth_basic" directive was used.
Thanks to Michail Laletin.
*) Bugfix: compatibility with ngx_http_eval_module; the bug had
appeared in 0.8.42.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 29 Nov 2010 00:00:00 +0300 |
parents | 43cc6f0b77ce |
children | d0f7a625f27c |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev */ #ifndef _NGX_PROCESS_H_INCLUDED_ #define _NGX_PROCESS_H_INCLUDED_ #include <ngx_setproctitle.h> typedef pid_t ngx_pid_t; #define NGX_INVALID_PID -1 typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data); typedef struct { ngx_pid_t pid; int status; ngx_socket_t channel[2]; ngx_spawn_proc_pt proc; void *data; char *name; unsigned respawn:1; unsigned just_spawn:1; unsigned detached:1; unsigned exiting:1; unsigned exited:1; } ngx_process_t; typedef struct { char *path; char *name; char *const *argv; char *const *envp; } ngx_exec_ctx_t; #define NGX_MAX_PROCESSES 1024 #define NGX_PROCESS_NORESPAWN -1 #define NGX_PROCESS_JUST_SPAWN -2 #define NGX_PROCESS_RESPAWN -3 #define NGX_PROCESS_JUST_RESPAWN -4 #define NGX_PROCESS_DETACHED -5 #define ngx_getpid getpid #ifndef ngx_log_pid #define ngx_log_pid ngx_pid #endif ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn); ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); ngx_int_t ngx_init_signals(ngx_log_t *log); void ngx_debug_point(void); #if (NGX_HAVE_SCHED_YIELD) #define ngx_sched_yield() sched_yield() #else #define ngx_sched_yield() usleep(1) #endif extern int ngx_argc; extern char **ngx_argv; extern char **ngx_os_argv; extern ngx_pid_t ngx_pid; extern ngx_socket_t ngx_channel; extern ngx_int_t ngx_process_slot; extern ngx_int_t ngx_last_process; extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES]; #endif /* _NGX_PROCESS_H_INCLUDED_ */