On Mon, 06 Oct 2014 22:01:52 +0200, Martin Nowak wrote:
On 10/06/2014 10:44 AM, Rafael wrote:
Hello.
Please, excuse me my bad english in advance!
extern (с) int fork() to daemonize vibe.d REST server on POSIX systems?
This minimal example is not workable:extern (C) int fork(); int main(string[] args){ if (fork()) return 0; void index(HTTPServerRequest req, HTTPServerResponse res){ res.writeBody("Hello World!"); } auto settings = new HTTPServerSettings; settings.bindAddresses = ["127.0.0.1"]; auto router = new URLRouter; router.get("/", &index); listenHTTP(settings, router); runEventLoop(); return 0; }
Works for me.
Yes, it works on linux. But on OSX ( and probably FreeBSD ) it does not work. I think it is libevent (kpoll/kqueue) problem. The child process must call event_reinit()
after fork()