BUG/MINOR: mworker: deinit of thread poller was called when not initialized

Commit 67e371e ("BUG/MEDIUM: mworker: FD leak of the eventpoll in wait
mode") introduced a regression. Upon a reload it tries to deinit the
poller per thread, but no poll loop was initialized after loading the
configuration.

This patch fixes the issue by moving this part of the code in
mworker_reload(), since this function will be called only when the
poller is fully initialized.

This patch must be backported in 2.5.
diff --git a/src/haproxy.c b/src/haproxy.c
index 094a839..dda03a9 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -661,7 +661,6 @@
 	int i = 0;
 	char *msg = NULL;
 	struct rlimit limit;
-	struct per_thread_deinit_fct *ptdf;
 	struct mworker_proc *current_child = NULL;
 
 	mworker_block_signals();
@@ -683,11 +682,9 @@
 	/* close the listeners FD */
 	mworker_cli_proxy_stop();
 
-	/* close the poller FD and the thread waker pipe FD */
-	list_for_each_entry(ptdf, &per_thread_deinit_list, list)
-		ptdf->fct();
 	if (fdtab)
 		deinit_pollers();
+
 #ifdef HAVE_SSL_RAND_KEEP_RANDOM_DEVICES_OPEN
 	/* close random device FDs */
 	RAND_keep_random_devices_open(0);
@@ -773,9 +770,14 @@
 void mworker_reload()
 {
 	struct mworker_proc *child;
+	struct per_thread_deinit_fct *ptdf;
 
 	ha_notice("Reloading HAProxy\n");
 
+	/* close the poller FD and the thread waker pipe FD */
+	list_for_each_entry(ptdf, &per_thread_deinit_list, list)
+		ptdf->fct();
+
 	/* increment the number of reloads */
 	list_for_each_entry(child, &proc_list, list) {
 		child->reloads++;