Annotation of embedaddon/nginx/src/os/unix/ngx_process.h, revision 1.1.1.1

1.1       misho       1: 
                      2: /*
                      3:  * Copyright (C) Igor Sysoev
                      4:  * Copyright (C) Nginx, Inc.
                      5:  */
                      6: 
                      7: 
                      8: #ifndef _NGX_PROCESS_H_INCLUDED_
                      9: #define _NGX_PROCESS_H_INCLUDED_
                     10: 
                     11: 
                     12: #include <ngx_setaffinity.h>
                     13: #include <ngx_setproctitle.h>
                     14: 
                     15: 
                     16: typedef pid_t       ngx_pid_t;
                     17: 
                     18: #define NGX_INVALID_PID  -1
                     19: 
                     20: typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data);
                     21: 
                     22: typedef struct {
                     23:     ngx_pid_t           pid;
                     24:     int                 status;
                     25:     ngx_socket_t        channel[2];
                     26: 
                     27:     ngx_spawn_proc_pt   proc;
                     28:     void               *data;
                     29:     char               *name;
                     30: 
                     31:     unsigned            respawn:1;
                     32:     unsigned            just_spawn:1;
                     33:     unsigned            detached:1;
                     34:     unsigned            exiting:1;
                     35:     unsigned            exited:1;
                     36: } ngx_process_t;
                     37: 
                     38: 
                     39: typedef struct {
                     40:     char         *path;
                     41:     char         *name;
                     42:     char *const  *argv;
                     43:     char *const  *envp;
                     44: } ngx_exec_ctx_t;
                     45: 
                     46: 
                     47: #define NGX_MAX_PROCESSES         1024
                     48: 
                     49: #define NGX_PROCESS_NORESPAWN     -1
                     50: #define NGX_PROCESS_JUST_SPAWN    -2
                     51: #define NGX_PROCESS_RESPAWN       -3
                     52: #define NGX_PROCESS_JUST_RESPAWN  -4
                     53: #define NGX_PROCESS_DETACHED      -5
                     54: 
                     55: 
                     56: #define ngx_getpid   getpid
                     57: 
                     58: #ifndef ngx_log_pid
                     59: #define ngx_log_pid  ngx_pid
                     60: #endif
                     61: 
                     62: 
                     63: ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
                     64:     ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn);
                     65: ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
                     66: ngx_int_t ngx_init_signals(ngx_log_t *log);
                     67: void ngx_debug_point(void);
                     68: 
                     69: 
                     70: #if (NGX_HAVE_SCHED_YIELD)
                     71: #define ngx_sched_yield()  sched_yield()
                     72: #else
                     73: #define ngx_sched_yield()  usleep(1)
                     74: #endif
                     75: 
                     76: 
                     77: extern int            ngx_argc;
                     78: extern char         **ngx_argv;
                     79: extern char         **ngx_os_argv;
                     80: 
                     81: extern ngx_pid_t      ngx_pid;
                     82: extern ngx_socket_t   ngx_channel;
                     83: extern ngx_int_t      ngx_process_slot;
                     84: extern ngx_int_t      ngx_last_process;
                     85: extern ngx_process_t  ngx_processes[NGX_MAX_PROCESSES];
                     86: 
                     87: 
                     88: #endif /* _NGX_PROCESS_H_INCLUDED_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>