From 7230fe1648831a17165201b6f02e0365f7b5f938 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 11 Nov 2009 09:54:07 +0000 Subject: [PATCH] OS X is still broken, so ask libevent not to use kqueue or poll. --- configure | 6 +++++- server.c | 16 +++++++++++++++- tmux.c | 16 +++++++++++++++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 66fc2c15..b7484554 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: configure,v 1.44 2009-11-08 22:51:34 tcunha Exp $ +# $Id: configure,v 1.45 2009-11-11 09:54:07 nicm Exp $ # # Copyright (c) 2009 Nicholas Marriott # @@ -29,6 +29,8 @@ echo "# $TMUX_PLATFORM" >$CONFIG_MK cat <>$CONFIG_H #undef HAVE_ASPRINTF #undef HAVE_BROKEN_CMSG_FIRSTHDR +#undef HAVE_BROKEN_KQUEUE +#undef HAVE_BROKEN_POLL #undef HAVE_BZERO #undef HAVE_CRYPT_H #undef HAVE_DAEMON @@ -169,6 +171,8 @@ EOF cat <>$CONFIG_H #define HAVE_ASPRINTF #define HAVE_BROKEN_CMSG_FIRSTHDR +#define HAVE_BROKEN_KQUEUE +#define HAVE_BROKEN_POLL #define HAVE_BZERO #define HAVE_DAEMON #define HAVE_FGETLN diff --git a/server.c b/server.c index 25fc25b4..f67b3667 100644 --- a/server.c +++ b/server.c @@ -1,4 +1,4 @@ -/* $Id: server.c,v 1.225 2009-11-08 23:28:40 tcunha Exp $ */ +/* $Id: server.c,v 1.226 2009-11-11 09:54:07 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -164,7 +164,21 @@ server_start(char *path) setproctitle("server (%s)", rpathbuf); #endif +#ifdef HAVE_BROKEN_KQUEUE + if (setenv("EVENT_NOKQUEUE", "1", 1) != 0) + fatal("setenv failed"); +#endif +#ifdef HAVE_BROKEN_POLL + if (setenv("EVENT_NOPOLL", "1", 1) != 0) + fatal("setenv failed"); +#endif event_init(); +#ifdef HAVE_BROKEN_KQUEUE + unsetenv("EVENT_NOKQUEUE"); +#endif +#ifdef HAVE_BROKEN_POLL + unsetenv("EVENT_NOPOLL"); +#endif server_fd = server_create_socket(); server_client_create(pair[1]); diff --git a/tmux.c b/tmux.c index bb93d12a..9d3ecaa5 100644 --- a/tmux.c +++ b/tmux.c @@ -1,4 +1,4 @@ -/* $Id: tmux.c,v 1.187 2009-11-10 23:34:03 tcunha Exp $ */ +/* $Id: tmux.c,v 1.188 2009-11-11 09:54:07 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -488,7 +488,21 @@ main(int argc, char **argv) exit(1); xfree(path); +#ifdef HAVE_BROKEN_KQUEUE + if (setenv("EVENT_NOKQUEUE", "1", 1) != 0) + fatal("setenv failed"); +#endif +#ifdef HAVE_BROKEN_POLL + if (setenv("EVENT_NOPOLL", "1", 1) != 0) + fatal("setenv failed"); +#endif event_init(); +#ifdef HAVE_BROKEN_KQUEUE + unsetenv("EVENT_NOKQUEUE"); +#endif +#ifdef HAVE_BROKEN_POLL + unsetenv("EVENT_NOPOLL"); +#endif imsg_compose(main_ibuf, msg, PROTOCOL_VERSION, -1, -1, buf, len);