From 436f3b357ee6a960621c319b7904aeed1cccead4 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 30 Dec 2010 20:41:08 +0000 Subject: epoll on Linux is broken with /dev/null so it needs to be disabled. Instead of adding another BROKEN_* define, move event_init into osdep-*.c. --- osdep-darwin.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'osdep-darwin.c') diff --git a/osdep-darwin.c b/osdep-darwin.c index dfa49a48..0d63e7fc 100644 --- a/osdep-darwin.c +++ b/osdep-darwin.c @@ -1,4 +1,4 @@ -/* $Id: osdep-darwin.c,v 1.11 2009-05-04 17:58:27 nicm Exp $ */ +/* $Id: osdep-darwin.c,v 1.12 2010-12-30 20:41:07 nicm Exp $ */ /* * Copyright (c) 2009 Joshua Elsasser @@ -19,11 +19,13 @@ #include #include +#include #include #include #include -char *osdep_get_name(int, char *); +char *osdep_get_name(int, char *); +struct event_base *osdep_event_init(void); #define unused __attribute__ ((unused)) @@ -31,7 +33,7 @@ char * osdep_get_name(int fd, unused char *tty) { int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, 0 }; - size_t size; + size_t size; struct kinfo_proc kp; if ((mib[3] = tcgetpgrp(fd)) == -1) @@ -45,3 +47,15 @@ osdep_get_name(int fd, unused char *tty) return (strdup(kp.kp_proc.p_comm)); } + +struct event_base * +osdep_event_init(void) +{ + /* + * On OS X, kqueue and poll are both completely broken and don't + * work on anything except socket file descriptors (yes, really). + */ + setenv("EVENT_NOKQUEUE", "1", 1); + setenv("EVENT_NOPOLL", "1", 1); + return (event_init()); +} -- cgit v1.2.3