php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
fpm_scoreboard.h
Go to the documentation of this file.
1 /* (c) 2009 Jerome Loyet */
2
3#ifndef FPM_SCOREBOARD_H
4#define FPM_SCOREBOARD_H 1
5
6#include <sys/time.h>
7#ifdef HAVE_TIMES
8#include <sys/times.h>
9#endif
10
11#include "fpm_request.h"
12#include "fpm_worker_pool.h"
13#include "fpm_atomic.h"
14
15#define FPM_SCOREBOARD_ACTION_SET 0
16#define FPM_SCOREBOARD_ACTION_INC 1
17
18#define FPM_SCOREBOARD_LOCK_HANG 0
19#define FPM_SCOREBOARD_LOCK_NOHANG 1
20
21#define FPM_SCOREBOARD_SPINLOCK_MAX_RETRIES 50000
22
24 union {
25 atomic_t lock;
26 char dummy[16];
27 };
28 int used;
30 pid_t pid;
31 unsigned long requests;
33 struct timeval accepted;
34 struct timeval duration;
36 struct timeval tv;
37 char request_uri[128];
38 char query_string[512];
40 size_t content_length; /* used with POST only */
41 char script_filename[256];
42 char auth_user[32];
43#ifdef HAVE_TIMES
44 struct tms cpu_accepted;
45 struct timeval cpu_duration;
46 struct tms last_request_cpu;
47 struct timeval last_request_cpu_duration;
48#endif
49 size_t memory;
50};
51
53 union {
54 atomic_t lock;
55 char dummy[16];
56 };
57 atomic_t writer_active;
58 unsigned int reader_count;
59 char pool[32];
60 int pm;
62 int idle;
63 int active;
65 unsigned long int requests;
67 int lq;
68 int lq_max;
69 unsigned int lq_len;
70 unsigned int nprocs;
72 unsigned long int slow_rq;
76};
77
80
81void fpm_scoreboard_update_begin(struct fpm_scoreboard_s *scoreboard);
82void fpm_scoreboard_update_commit(int idle, int active, int lq, int lq_len, int requests, int max_children_reached, int slow_rq, size_t memory_max, int action, struct fpm_scoreboard_s *scoreboard);
83void fpm_scoreboard_update(int idle, int active, int lq, int lq_len, int requests, int max_children_reached, int slow_rq, size_t memory_max, int action, struct fpm_scoreboard_s *scoreboard);
84
86struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_get(struct fpm_scoreboard_s *scoreboard, int child_index);
88
89struct fpm_scoreboard_s *fpm_scoreboard_acquire(struct fpm_scoreboard_s *scoreboard, int nohang);
90void fpm_scoreboard_release(struct fpm_scoreboard_s *scoreboard);
91struct fpm_scoreboard_proc_s *fpm_scoreboard_proc_acquire(struct fpm_scoreboard_s *scoreboard, int child_index, int nohang);
93
95
96void fpm_scoreboard_child_use(struct fpm_child_s *child, pid_t pid);
97
98void fpm_scoreboard_proc_free(struct fpm_child_s *child);
99int fpm_scoreboard_proc_alloc(struct fpm_child_s *child);
100
101struct fpm_scoreboard_s *fpm_scoreboard_copy(struct fpm_scoreboard_s *scoreboard, int copy_procs);
102void fpm_scoreboard_free_copy(struct fpm_scoreboard_s *scoreboard);
103
104#ifdef HAVE_TIMES
105float fpm_scoreboard_get_tick(void);
106#endif
107
108#endif
fpm_request_stage_e
Definition fpm_request.h:27
void fpm_scoreboard_update(int idle, int active, int lq, int lq_len, int requests, int max_children_reached, int slow_rq, size_t memory_max, int action, struct fpm_scoreboard_s *scoreboard)
struct fpm_scoreboard_proc_s * fpm_scoreboard_proc_acquire(struct fpm_scoreboard_s *scoreboard, int child_index, int nohang)
void fpm_scoreboard_free(struct fpm_worker_pool_s *wp)
void fpm_scoreboard_free_copy(struct fpm_scoreboard_s *scoreboard)
int fpm_scoreboard_init_main(void)
void fpm_scoreboard_release(struct fpm_scoreboard_s *scoreboard)
void fpm_scoreboard_update_commit(int idle, int active, int lq, int lq_len, int requests, int max_children_reached, int slow_rq, size_t memory_max, int action, struct fpm_scoreboard_s *scoreboard)
struct fpm_scoreboard_proc_s * fpm_scoreboard_proc_get_from_child(struct fpm_child_s *child)
int fpm_scoreboard_init_child(struct fpm_worker_pool_s *wp)
void fpm_scoreboard_update_begin(struct fpm_scoreboard_s *scoreboard)
void fpm_scoreboard_proc_release(struct fpm_scoreboard_proc_s *proc)
void fpm_scoreboard_child_use(struct fpm_child_s *child, pid_t pid)
struct fpm_scoreboard_s * fpm_scoreboard_get(void)
struct fpm_scoreboard_proc_s * fpm_scoreboard_proc_get(struct fpm_scoreboard_s *scoreboard, int child_index)
struct fpm_scoreboard_s * fpm_scoreboard_copy(struct fpm_scoreboard_s *scoreboard, int copy_procs)
void fpm_scoreboard_proc_free(struct fpm_child_s *child)
int fpm_scoreboard_proc_alloc(struct fpm_child_s *child)
struct fpm_scoreboard_s * fpm_scoreboard_acquire(struct fpm_scoreboard_s *scoreboard, int nohang)
php_output_handler * active
Definition php_output.h:140
struct timeval accepted
struct timeval duration
enum fpm_request_stage_e request_stage
struct fpm_scoreboard_proc_s procs[] ZEND_ELEMENT_COUNT(nprocs)
unsigned int nprocs
unsigned int max_children_reached
unsigned int reader_count
struct fpm_scoreboard_s * shared
unsigned long int slow_rq
unsigned int lq_len
unsigned long int requests