diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-07-24 19:25:33 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2010-07-24 19:25:33 +0000 |
commit | 6a7834b594147699a4d4dc75633d00b45677f1d9 (patch) | |
tree | d0f852327da17a2632437b5a54ac89023f1c714b /usr.bin/tmux | |
parent | c6fbb46493abf59104b81880b06e24172254946c (diff) |
kqueue(2) is currently broken when used with /dev/null and a few other
devices.
An upcoming fix for some problems with the client stdout/stderr handling
relies on it working, so make tmux force libevent to use poll(2) via
EVENT_NOKQUEUE, until we have fixed kqueue.
Diffstat (limited to 'usr.bin/tmux')
-rw-r--r-- | usr.bin/tmux/server.c | 5 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/usr.bin/tmux/server.c b/usr.bin/tmux/server.c index 88d73d73a34..4d52b888d5b 100644 --- a/usr.bin/tmux/server.c +++ b/usr.bin/tmux/server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server.c,v 1.89 2010/06/21 00:18:57 nicm Exp $ */ +/* $OpenBSD: server.c,v 1.90 2010/07/24 19:25:32 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -139,8 +139,11 @@ server_start(char *path) fatal("daemon failed"); /* event_init() was called in our parent, need to reinit. */ + if (setenv("EVENT_NOKQUEUE", "1", 1) != 0) + fatal("setenv"); if (event_reinit(ev_base) != 0) fatal("event_reinit failed"); + unsetenv("EVENT_NOKQUEUE"); clear_signals(); logfile("server"); diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c index 644412deaf9..d34b03186de 100644 --- a/usr.bin/tmux/tmux.c +++ b/usr.bin/tmux/tmux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.c,v 1.84 2010/07/11 17:06:45 nicm Exp $ */ +/* $OpenBSD: tmux.c,v 1.85 2010/07/24 19:25:31 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -532,7 +532,10 @@ main(int argc, char **argv) exit(1); } + if (setenv("EVENT_NOKQUEUE", "1", 1) != 0) + fatal("setenv"); ev_base = event_init(); + unsetenv("EVENT_NOKQUEUE"); set_signals(main_signal); /* Initialise the client socket/start the server. */ |