From 3a9640b2945a619250cc1a447b3dfdc6dae19b7e Mon Sep 17 00:00:00 2001
From: Nick Zavaritsky <mejedi@gmail.com>
Date: Thu, 20 Aug 2015 00:56:54 +0300
Subject: [PATCH] gh-517: touch libev event loop after fork for proper reinit

---
 src/main.cc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/main.cc b/src/main.cc
index 60befc47e2..0836c46328 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -363,6 +363,12 @@ background()
 	if (setsid() == -1)
 		goto error;
 
+	/*
+	 * tell libev we've just forked, this is necessary to re-initialize
+	 * kqueue on FreeBSD.
+	 */
+	ev_loop_fork(cord()->loop);
+
 	/*
 	 * reinit signals after fork, because fork() implicitly calls
 	 * signal_reset() via pthread_atfork() hook installed by signal_init().
-- 
GitLab