Lines Matching refs:child

59 static void fpm_child_free(struct fpm_child_s *child) /* {{{ */  in fpm_child_free()  argument
61 free(child); in fpm_child_free()
65 static void fpm_child_close(struct fpm_child_s *child, int in_event_loop) /* {{{ */ in fpm_child_close() argument
67 if (child->fd_stdout != -1) { in fpm_child_close()
69 fpm_event_fire(&child->ev_stdout); in fpm_child_close()
71 if (child->fd_stdout != -1) { in fpm_child_close()
72 close(child->fd_stdout); in fpm_child_close()
76 if (child->fd_stderr != -1) { in fpm_child_close()
78 fpm_event_fire(&child->ev_stderr); in fpm_child_close()
80 if (child->fd_stderr != -1) { in fpm_child_close()
81 close(child->fd_stderr); in fpm_child_close()
85 fpm_child_free(child); in fpm_child_close()
89 static void fpm_child_link(struct fpm_child_s *child) /* {{{ */ in fpm_child_link() argument
91 struct fpm_worker_pool_s *wp = child->wp; in fpm_child_link()
96 child->next = wp->children; in fpm_child_link()
97 if (child->next) { in fpm_child_link()
98 child->next->prev = child; in fpm_child_link()
100 child->prev = 0; in fpm_child_link()
101 wp->children = child; in fpm_child_link()
105 static void fpm_child_unlink(struct fpm_child_s *child) /* {{{ */ in fpm_child_unlink() argument
107 --child->wp->running_children; in fpm_child_unlink()
110 if (child->prev) { in fpm_child_unlink()
111 child->prev->next = child->next; in fpm_child_unlink()
113 child->wp->children = child->next; in fpm_child_unlink()
116 if (child->next) { in fpm_child_unlink()
117 child->next->prev = child->prev; in fpm_child_unlink()
125 struct fpm_child_s *child = 0; in fpm_child_find() local
129 for (child = wp->children; child; child = child->next) { in fpm_child_find()
130 if (child->pid == pid) { in fpm_child_find()
135 if (child) break; in fpm_child_find()
138 if (!child) { in fpm_child_find()
142 return child; in fpm_child_find()
164 int fpm_children_free(struct fpm_child_s *child) /* {{{ */ in fpm_children_free() argument
168 for (; child; child = next) { in fpm_children_free()
169 next = child->next; in fpm_children_free()
170 fpm_child_close(child, 0 /* in_event_loop */); in fpm_children_free()
181 struct fpm_child_s *child; in fpm_children_bury() local
188 child = fpm_child_find(pid); in fpm_children_bury()
197 if (child && child->idle_kill) { in fpm_children_bury()
218 if (child && child->idle_kill && WTERMSIG(status) == SIGQUIT) { in fpm_children_bury()
229 if (child && child->tracer) { in fpm_children_bury()
230 child->tracer(child); in fpm_children_bury()
236 if (child) { in fpm_children_bury()
237 struct fpm_worker_pool_s *wp = child->wp; in fpm_children_bury()
240 fpm_child_unlink(child); in fpm_children_bury()
242 fpm_scoreboard_proc_free(wp->scoreboard, child->scoreboard_i); in fpm_children_bury()
246 timersub(&tv1, &child->started, &tv2); in fpm_children_bury()
252 …zlog(severity, "[pool %s] child %d exited %s after %ld.%06d seconds from start", child->wp->config… in fpm_children_bury()
254 …been killed by the process management after %ld.%06d seconds from start", child->wp->config->name,… in fpm_children_bury()
257 fpm_child_close(child, 1 /* in event_loop */); in fpm_children_bury()
330 static void fpm_resources_discard(struct fpm_child_s *child) /* {{{ */ in fpm_resources_discard() argument
332 fpm_scoreboard_proc_free(child->wp->scoreboard, child->scoreboard_i); in fpm_resources_discard()
333 fpm_stdio_discard_pipes(child); in fpm_resources_discard()
334 fpm_child_free(child); in fpm_resources_discard()
338 static void fpm_child_resources_use(struct fpm_child_s *child) /* {{{ */ in fpm_child_resources_use() argument
342 if (wp == child->wp) { in fpm_child_resources_use()
348 fpm_scoreboard_child_use(child->wp->scoreboard, child->scoreboard_i, getpid()); in fpm_child_resources_use()
349 fpm_stdio_child_use_pipes(child); in fpm_child_resources_use()
350 fpm_child_free(child); in fpm_child_resources_use()
354 static void fpm_parent_resources_use(struct fpm_child_s *child) /* {{{ */ in fpm_parent_resources_use() argument
356 fpm_stdio_parent_use_pipes(child); in fpm_parent_resources_use()
357 fpm_child_link(child); in fpm_parent_resources_use()
364 struct fpm_child_s *child; in fpm_children_make() local
394 child = fpm_resources_prepare(wp); in fpm_children_make()
396 if (!child) { in fpm_children_make()
405 fpm_child_resources_use(child); in fpm_children_make()
413 fpm_resources_discard(child); in fpm_children_make()
417 child->pid = pid; in fpm_children_make()
418 fpm_clock_get(&child->started); in fpm_children_make()
419 fpm_parent_resources_use(child); in fpm_children_make()