void mworker_kill_max_reloads(int sig);
+struct mworker_proc *mworker_proc_new();
void mworker_free_child(struct mworker_proc *);
void mworker_cleanup_proc();
if (getenv("HAPROXY_MWORKER_REEXEC") == NULL) {
- tmproc = calloc(1, sizeof(*tmproc));
+ tmproc = mworker_proc_new();
if (!tmproc) {
ha_alert("Cannot allocate process structures.\n");
exit(EXIT_FAILURE);
}
tmproc->options |= PROC_O_TYPE_MASTER; /* master */
- tmproc->failedreloads = 0;
- tmproc->reloads = 0;
tmproc->pid = pid;
tmproc->timestamp = start_date.tv_sec;
- tmproc->ipc_fd[0] = -1;
- tmproc->ipc_fd[1] = -1;
-
proc_self = tmproc;
LIST_APPEND(&proc_list, &tmproc->list);
}
- tmproc = calloc(1, sizeof(*tmproc));
+ tmproc = mworker_proc_new();
if (!tmproc) {
ha_alert("Cannot allocate process structures.\n");
exit(EXIT_FAILURE);
}
-
tmproc->options |= PROC_O_TYPE_WORKER; /* worker */
- tmproc->pid = -1;
- tmproc->failedreloads = 0;
- tmproc->reloads = 0;
- tmproc->timestamp = -1;
- tmproc->ipc_fd[0] = -1;
- tmproc->ipc_fd[1] = -1;
if (mworker_cli_sockpair_new(tmproc, 0) < 0) {
exit(EXIT_FAILURE);
setenv("HAPROXY_PROCESSES", msg, 1);
}
+struct mworker_proc *mworker_proc_new()
+{
+ struct mworker_proc *child;
+
+ child = calloc(1, sizeof(*child));
+ if (!child)
+ return NULL;
+
+ child->failedreloads = 0;
+ child->reloads = 0;
+ child->pid = -1;
+ child->ipc_fd[0] = -1;
+ child->ipc_fd[1] = -1;
+ child->timestamp = -1;
+
+ return child;
+}
+
+
/*
* unserialize the proc list from the environment
*/
msg = NULL;
- child = calloc(1, sizeof(*child));
+ child = mworker_proc_new();
if (!child) {
ha_alert("Out of memory while trying to allocate a worker process structure.");
return -1;