Lines Matching refs:proc

301 	scgi_proc *proc;  member
333 int scgi_proclist_sort_down(server *srv, scgi_extension_host *host, scgi_proc *proc);
363 hctx->proc = NULL; in handler_ctx_init()
573 scgi_proc *proc; in FREE_FUNC() local
578 for (proc = host->first; proc; proc = proc->next) { in FREE_FUNC()
579 if (proc->pid != 0) kill(proc->pid, SIGTERM); in FREE_FUNC()
581 if (proc->is_local && in FREE_FUNC()
582 !buffer_is_empty(proc->socket)) { in FREE_FUNC()
583 unlink(proc->socket->ptr); in FREE_FUNC()
587 for (proc = host->unused_procs; proc; proc = proc->next) { in FREE_FUNC()
588 if (proc->pid != 0) kill(proc->pid, SIGTERM); in FREE_FUNC()
590 if (proc->is_local && in FREE_FUNC()
591 !buffer_is_empty(proc->socket)) { in FREE_FUNC()
592 unlink(proc->socket->ptr); in FREE_FUNC()
647 scgi_proc *proc) { in scgi_spawn_connection() argument
665 "new proc, socket:", proc->port, proc->socket); in scgi_spawn_connection()
668 if (!buffer_is_empty(proc->socket)) { in scgi_spawn_connection()
673 strcpy(scgi_addr_un.sun_path, proc->socket->ptr); in scgi_spawn_connection()
679 servlen = proc->socket->used + sizeof(scgi_addr_un.sun_family); in scgi_spawn_connection()
720 scgi_addr_in.sin_port = htons(proc->port); in scgi_spawn_connection()
738 if (!buffer_is_empty(proc->socket)) { in scgi_spawn_connection()
739 unlink(proc->socket->ptr); in scgi_spawn_connection()
762 proc->socket, in scgi_spawn_connection()
763 proc->port, in scgi_spawn_connection()
890 proc->pid = child; in scgi_spawn_connection()
891 proc->last_used = srv->cur_ts; in scgi_spawn_connection()
892 proc->is_local = 1; in scgi_spawn_connection()
898 proc->is_local = 0; in scgi_spawn_connection()
899 proc->pid = 0; in scgi_spawn_connection()
904 proc->socket); in scgi_spawn_connection()
908 proc->state = PROC_STATE_RUNNING; in scgi_spawn_connection()
1123 scgi_proc *proc; in SETDEFAULTS_FUNC() local
1125 proc = scgi_process_init(); in SETDEFAULTS_FUNC()
1126 proc->id = df->num_procs++; in SETDEFAULTS_FUNC()
1130 proc->port = df->port + pno; in SETDEFAULTS_FUNC()
1132 buffer_copy_string_buffer(proc->socket, df->unixsocket); in SETDEFAULTS_FUNC()
1133 buffer_append_string_len(proc->socket, CONST_STR_LEN("-")); in SETDEFAULTS_FUNC()
1134 buffer_append_long(proc->socket, pno); in SETDEFAULTS_FUNC()
1145 if (scgi_spawn_connection(srv, p, df, proc)) { in SETDEFAULTS_FUNC()
1151 proc->next = df->first; in SETDEFAULTS_FUNC()
1152 if (df->first) df->first->prev = proc; in SETDEFAULTS_FUNC()
1154 df->first = proc; in SETDEFAULTS_FUNC()
1211 if (hctx->host && hctx->proc) { in scgi_connection_cleanup()
1216 hctx->proc->load--; in scgi_connection_cleanup()
1222 hctx->proc->pid, hctx->proc->socket); in scgi_connection_cleanup()
1226 scgi_proclist_sort_down(srv, hctx->host, hctx->proc); in scgi_connection_cleanup()
1270 hctx->proc->pid, hctx->proc->socket); in scgi_reconnect()
1273 hctx->proc->load--; in scgi_reconnect()
1274 scgi_proclist_sort_down(srv, hctx->host, hctx->proc); in scgi_reconnect()
1326 scgi_proc *proc = hctx->proc; in scgi_establish_connection() local
1331 if (!buffer_is_empty(proc->socket)) { in scgi_establish_connection()
1335 strcpy(scgi_addr_un.sun_path, proc->socket->ptr); in scgi_establish_connection()
1340 servlen = proc->socket->used + sizeof(scgi_addr_un.sun_family); in scgi_establish_connection()
1355 scgi_addr_in.sin_port = htons(proc->port); in scgi_establish_connection()
1375 proc->port, proc->socket); in scgi_establish_connection()
1933 static int scgi_proclist_sort_up(server *srv, scgi_extension_host *host, scgi_proc *proc) { in scgi_proclist_sort_up() argument
1950 if (host->first == proc && proc->next == NULL) return 0; in scgi_proclist_sort_up()
1952 for (p = proc; p->next && p->next->load < proc->load; p = p->next); in scgi_proclist_sort_up()
1962 if (p == proc) return 0; in scgi_proclist_sort_up()
1964 if (host->first == proc) { in scgi_proclist_sort_up()
1967 host->first = proc->next; in scgi_proclist_sort_up()
1973 if (proc->prev) proc->prev->next = proc->next; in scgi_proclist_sort_up()
1974 if (proc->next) proc->next->prev = proc->prev; in scgi_proclist_sort_up()
1978 proc->next = p->next; in scgi_proclist_sort_up()
1979 proc->prev = p; in scgi_proclist_sort_up()
1980 if (p->next) p->next->prev = proc; in scgi_proclist_sort_up()
1981 p->next = proc; in scgi_proclist_sort_up()
1994 int scgi_proclist_sort_down(server *srv, scgi_extension_host *host, scgi_proc *proc) { in scgi_proclist_sort_down() argument
2024 if (host->first == proc && proc->next == NULL) return 0; in scgi_proclist_sort_down()
2026 for (p = host->first; p != proc && p->load < proc->load; p = p->next); in scgi_proclist_sort_down()
2037 if (p == proc) return 0; in scgi_proclist_sort_down()
2041 if (host->first == proc) return 0; in scgi_proclist_sort_down()
2044 if (proc->prev) proc->prev->next = proc->next; in scgi_proclist_sort_down()
2045 if (proc->next) proc->next->prev = proc->prev; in scgi_proclist_sort_down()
2048 proc->next = p; in scgi_proclist_sort_down()
2049 proc->prev = p->prev; in scgi_proclist_sort_down()
2050 if (p->prev) p->prev->next = proc; in scgi_proclist_sort_down()
2051 p->prev = proc; in scgi_proclist_sort_down()
2053 if (proc->prev == NULL) host->first = proc; in scgi_proclist_sort_down()
2067 scgi_proc *proc; in scgi_restart_dead_procs() local
2069 for (proc = host->first; proc; proc = proc->next) { in scgi_restart_dead_procs()
2073 host->host, proc->port, in scgi_restart_dead_procs()
2074 proc->socket, in scgi_restart_dead_procs()
2075 proc->state, in scgi_restart_dead_procs()
2076 proc->is_local, in scgi_restart_dead_procs()
2077 proc->load, in scgi_restart_dead_procs()
2078 proc->pid); in scgi_restart_dead_procs()
2081 if (0 == proc->is_local) { in scgi_restart_dead_procs()
2088 if ((proc->state == PROC_STATE_DISABLED) && in scgi_restart_dead_procs()
2089 (srv->cur_ts - proc->disable_ts > host->disable_time)) { in scgi_restart_dead_procs()
2090 proc->state = PROC_STATE_RUNNING; in scgi_restart_dead_procs()
2102 if (proc->state == PROC_STATE_DIED_WAIT_FOR_PID) { in scgi_restart_dead_procs()
2103 switch(waitpid(proc->pid, &status, WNOHANG)) { in scgi_restart_dead_procs()
2113 "child exited, pid:", proc->pid, in scgi_restart_dead_procs()
2126 proc->state = PROC_STATE_DIED; in scgi_restart_dead_procs()
2135 if (proc->state == PROC_STATE_DIED && in scgi_restart_dead_procs()
2136 proc->load == 0) { in scgi_restart_dead_procs()
2147 if (scgi_spawn_connection(srv, p, host, proc)) { in scgi_restart_dead_procs()
2153 scgi_proclist_sort_down(srv, host, proc); in scgi_restart_dead_procs()
2218 for (hctx->proc = hctx->host->first; in scgi_write_request()
2219 hctx->proc && hctx->proc->state != PROC_STATE_RUNNING; in scgi_write_request()
2220 hctx->proc = hctx->proc->next); in scgi_write_request()
2223 if (hctx->proc == NULL) { in scgi_write_request()
2229 if (hctx->proc->is_local) { in scgi_write_request()
2230 hctx->pid = hctx->proc->pid; in scgi_write_request()
2265 if (!hctx->proc->is_local || p->conf.debug) { in scgi_write_request()
2270 "port:", hctx->proc->port); in scgi_write_request()
2279 hctx->proc->load++; in scgi_write_request()
2280 hctx->proc->last_used = srv->cur_ts; in scgi_write_request()
2287 hctx->proc->pid, in scgi_write_request()
2288 hctx->proc->socket, in scgi_write_request()
2289 hctx->proc->port, in scgi_write_request()
2290 hctx->proc->load); in scgi_write_request()
2294 scgi_proclist_sort_up(srv, hctx->host, hctx->proc); in scgi_write_request()
2376 scgi_proc *proc; in SUBREQUEST_FUNC() local
2387 proc = hctx->proc; in SUBREQUEST_FUNC()
2390 if (proc && in SUBREQUEST_FUNC()
2391 0 == proc->is_local && in SUBREQUEST_FUNC()
2392 proc->state != PROC_STATE_DISABLED) { in SUBREQUEST_FUNC()
2397 proc->port, in SUBREQUEST_FUNC()
2398 proc->socket); in SUBREQUEST_FUNC()
2401 proc->disable_ts = srv->cur_ts; in SUBREQUEST_FUNC()
2402 proc->state = PROC_STATE_DISABLED; in SUBREQUEST_FUNC()
2411 if (proc && proc->is_local) { in SUBREQUEST_FUNC()
2416 proc->port, in SUBREQUEST_FUNC()
2417 proc->socket); in SUBREQUEST_FUNC()
2430 if (proc->state == PROC_STATE_RUNNING && in SUBREQUEST_FUNC()
2431 hctx->pid == proc->pid) { in SUBREQUEST_FUNC()
2432 proc->state = PROC_STATE_DIED_WAIT_FOR_PID; in SUBREQUEST_FUNC()
2494 scgi_proc *proc = hctx->proc; in scgi_handle_fdevent() local
2509 if (proc->pid && proc->state != PROC_STATE_DIED) { in scgi_handle_fdevent()
2514 switch(waitpid(proc->pid, &status, WNOHANG)) { in scgi_handle_fdevent()
2524 "child exited, pid:", proc->pid, in scgi_handle_fdevent()
2544 if (scgi_spawn_connection(srv, p, host, proc)) { in scgi_handle_fdevent()
2546 proc->state = PROC_STATE_DIED; in scgi_handle_fdevent()
2548 scgi_proclist_sort_down(srv, host, proc); in scgi_handle_fdevent()
2631 hctx->proc->port == 0) { in scgi_handle_fdevent()
2803 hctx->proc = NULL; in scgi_check_extension()
2862 hctx->proc = NULL; in scgi_check_extension()
2957 scgi_proc *proc; in TRIGGER_FUNC() local
2965 for (proc = host->first; proc; proc = proc->next) { in TRIGGER_FUNC()
2966 sum_load += proc->load; in TRIGGER_FUNC()
3017 for (proc = host->first; proc; proc = proc->next) { in TRIGGER_FUNC()
3018 if (proc->load != 0) break; in TRIGGER_FUNC()
3020 if (proc->pid == 0) continue; in TRIGGER_FUNC()
3022 if (srv->cur_ts - proc->last_used > host->idle_timeout) { in TRIGGER_FUNC()
3029 "socket:", proc->socket, in TRIGGER_FUNC()
3030 "pid", proc->pid); in TRIGGER_FUNC()
3034 if (proc->next) proc->next->prev = proc->prev; in TRIGGER_FUNC()
3035 if (proc->prev) proc->prev->next = proc->next; in TRIGGER_FUNC()
3037 if (proc->prev == NULL) host->first = proc->next; in TRIGGER_FUNC()
3039 proc->prev = NULL; in TRIGGER_FUNC()
3040 proc->next = host->unused_procs; in TRIGGER_FUNC()
3042 if (host->unused_procs) host->unused_procs->prev = proc; in TRIGGER_FUNC()
3043 host->unused_procs = proc; in TRIGGER_FUNC()
3045 kill(proc->pid, SIGTERM); in TRIGGER_FUNC()
3047 proc->state = PROC_STATE_KILLED; in TRIGGER_FUNC()
3051 "socket:", proc->socket, in TRIGGER_FUNC()
3052 "pid", proc->pid); in TRIGGER_FUNC()
3061 for (proc = host->unused_procs; proc; proc = proc->next) { in TRIGGER_FUNC()
3064 if (proc->pid == 0) continue; in TRIGGER_FUNC()
3066 switch (waitpid(proc->pid, &status, WNOHANG)) { in TRIGGER_FUNC()
3074 "pid ", proc->pid, proc->state, in TRIGGER_FUNC()
3080 proc->pid = 0; in TRIGGER_FUNC()
3081 proc->state = PROC_STATE_UNSET; in TRIGGER_FUNC()
3089 if (proc->state != PROC_STATE_KILLED) { in TRIGGER_FUNC()
3092 WEXITSTATUS(status), proc->socket); in TRIGGER_FUNC()
3105 proc->pid = 0; in TRIGGER_FUNC()
3106 proc->state = PROC_STATE_UNSET; in TRIGGER_FUNC()