From 277743914be6da69951f8ab48fc0330df5a6f41f Mon Sep 17 00:00:00 2001 From: Hiroki Noda Date: Sat, 16 Dec 2017 10:16:43 +0900 Subject: [PATCH] Set EPOLL_CLOEXEC to prevent fd leakage for command executation This is for the same reason #38 --- source/eventcore/drivers/posix/epoll.d | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/eventcore/drivers/posix/epoll.d b/source/eventcore/drivers/posix/epoll.d index 672b2cb..cb11929 100644 --- a/source/eventcore/drivers/posix/epoll.d +++ b/source/eventcore/drivers/posix/epoll.d @@ -18,6 +18,9 @@ import core.sys.linux.epoll; alias EpollEventDriver = PosixEventDriver!EpollEventLoop; +static if (!is(typeof(SOCK_CLOEXEC))) + enum SOCK_CLOEXEC = 0x80000; + final class EpollEventLoop : PosixEventLoop { @safe: nothrow: @@ -28,7 +31,7 @@ final class EpollEventLoop : PosixEventLoop { this() { - m_epoll = () @trusted { return epoll_create1(0); } (); + m_epoll = () @trusted { return epoll_create1(SOCK_CLOEXEC); } (); m_events.length = 100; }