src/os/win32/ngx_process.h - nginx source code

Data types defined

Macros defined

Source code


  1. /*
  2. * Copyright (C) Igor Sysoev
  3. * Copyright (C) Nginx, Inc.
  4. */


  5. #ifndef _NGX_PROCESS_H_INCLUDED_
  6. #define _NGX_PROCESS_H_INCLUDED_


  7. typedef DWORD               ngx_pid_t;
  8. #define NGX_INVALID_PID     0


  9. #define ngx_getpid          GetCurrentProcessId
  10. #define ngx_getppid()       0
  11. #define ngx_log_pid         ngx_pid


  12. #define NGX_PROCESS_SYNC_NAME                                                 \
  13.     (sizeof("ngx_cache_manager_mutex_") + NGX_INT32_LEN)


  14. typedef uint64_t            ngx_cpuset_t;


  15. typedef struct {
  16.     HANDLE                  handle;
  17.     ngx_pid_t               pid;
  18.     char                   *name;

  19.     HANDLE                  term;
  20.     HANDLE                  quit;
  21.     HANDLE                  reopen;

  22.     u_char                  term_event[NGX_PROCESS_SYNC_NAME];
  23.     u_char                  quit_event[NGX_PROCESS_SYNC_NAME];
  24.     u_char                  reopen_event[NGX_PROCESS_SYNC_NAME];

  25.     unsigned                just_spawn:1;
  26.     unsigned                exiting:1;
  27. } ngx_process_t;


  28. typedef struct {
  29.     char                   *path;
  30.     char                   *name;
  31.     char                   *args;
  32.     char *const            *argv;
  33.     char *const            *envp;
  34.     HANDLE                  child;
  35. } ngx_exec_ctx_t;


  36. ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, char *name, ngx_int_t respawn);
  37. ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);

  38. #define ngx_debug_point()
  39. #define ngx_sched_yield()   SwitchToThread()


  40. #define NGX_MAX_PROCESSES         (MAXIMUM_WAIT_OBJECTS - 4)

  41. #define NGX_PROCESS_RESPAWN       -2
  42. #define NGX_PROCESS_JUST_RESPAWN  -3


  43. extern int                  ngx_argc;
  44. extern char               **ngx_argv;
  45. extern char               **ngx_os_argv;

  46. extern ngx_int_t            ngx_last_process;
  47. extern ngx_process_t        ngx_processes[NGX_MAX_PROCESSES];

  48. extern ngx_pid_t            ngx_pid;
  49. extern ngx_pid_t            ngx_parent;


  50. #endif /* _NGX_PROCESS_H_INCLUDED_ */