From b5b585c1f9a13577e28549436bb7b95c0c427f6b Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Sat, 1 Mar 2003 19:46:27 +0000 Subject: [PATCH] support disabling of event mechanisms via the environment; error out if no event mechanism is available svn:r38 --- event.c | 3 +++ poll.c | 4 ++++ select.c | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/event.c b/event.c index f657028b..182847a5 100644 --- a/event.c +++ b/event.c @@ -133,6 +133,9 @@ event_init(void) evbase = evsel->init(); } + if (evbase == NULL) + errx(1, "%s: no event mechanism available", __func__); + #if defined(USE_LOG) && defined(USE_DEBUG) log_to(stderr); log_debug_cmd(LOG_MISC, 80); diff --git a/poll.c b/poll.c index f84d3553..8f30086b 100644 --- a/poll.c +++ b/poll.c @@ -92,6 +92,10 @@ struct eventop pollops = { void * poll_init(void) { + /* Disable kqueue when this environment variable is set */ + if (getenv("EVENT_NOPOLL")) + return (NULL); + memset(&pop, 0, sizeof(pop)); evsignal_init(&pop.evsigmask); diff --git a/select.c b/select.c index bed15624..86d0e357 100644 --- a/select.c +++ b/select.c @@ -96,6 +96,10 @@ struct eventop selectops = { void * select_init(void) { + /* Disable kqueue when this environment variable is set */ + if (getenv("EVENT_NOSELECT")) + return (NULL); + memset(&sop, 0, sizeof(sop)); evsignal_init(&sop.evsigmask); -- 2.50.1