MEDIUM: mworker: call per_thread deinit in mworker_reload()
We need to clean the FDs registered manually in the poller to avoid FD
leaking during a reload of the master.
This patch call the per thread deinit function which close the thread
waker pipe.
diff --git a/src/haproxy.c b/src/haproxy.c
index d5345ba..b993341 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -740,8 +740,13 @@
next_argv[next_argc++] = NULL;
}
- if (getenv("HAPROXY_MWORKER_WAIT_ONLY") == NULL)
+ if (getenv("HAPROXY_MWORKER_WAIT_ONLY") == NULL) {
+ struct per_thread_deinit_fct *ptdf;
+
+ list_for_each_entry(ptdf, &per_thread_deinit_list, list)
+ ptdf->fct();
deinit_pollers(); /* we don't want to leak the poller fd */
+ }
ha_warning("Reexecuting Master process\n");
execvp(next_argv[0], next_argv);