Add a flag to disable checking the EVENT_* environment variables.

svn:r1220
This commit is contained in:
Nick Mathewson 2009-04-22 19:41:23 +00:00
parent 1f9c9e5137
commit 11ff74cf64
2 changed files with 12 additions and 1 deletions

View File

@ -239,6 +239,7 @@ event_base_new_with_config(struct event_config *cfg)
{ {
int i; int i;
struct event_base *base; struct event_base *base;
int should_check_environment;
if ((base = mm_calloc(1, sizeof(struct event_base))) == NULL) if ((base = mm_calloc(1, sizeof(struct event_base))) == NULL)
event_err(1, "%s: calloc", __func__); event_err(1, "%s: calloc", __func__);
@ -259,6 +260,10 @@ event_base_new_with_config(struct event_config *cfg)
evmap_signal_initmap(&base->sigmap); evmap_signal_initmap(&base->sigmap);
base->evbase = NULL; base->evbase = NULL;
should_check_environment =
cfg && (cfg->flags & EVENT_BASE_FLAG_IGNORE_ENV);
for (i = 0; eventops[i] && !base->evbase; i++) { for (i = 0; eventops[i] && !base->evbase; i++) {
if (cfg != NULL) { if (cfg != NULL) {
/* determine if this backend should be avoided */ /* determine if this backend should be avoided */
@ -271,7 +276,8 @@ event_base_new_with_config(struct event_config *cfg)
} }
/* also obey the environment variables */ /* also obey the environment variables */
if (event_is_method_disabled(eventops[i]->name)) if (should_check_environment &&
event_is_method_disabled(eventops[i]->name))
continue; continue;
base->evsel = eventops[i]; base->evsel = eventops[i];

View File

@ -160,7 +160,12 @@ enum event_method_feature {
}; };
enum event_base_config_flag { enum event_base_config_flag {
/** Do not allocate a lock for the event base, even if we have
locking set up. */
EVENT_BASE_FLAG_NOLOCK = 0x01, EVENT_BASE_FLAG_NOLOCK = 0x01,
/** Do not check the EVENT_NO* environment variables when picking
an event_base. */
EVENT_BASE_FLAG_IGNORE_ENV = 0x02,
}; };
/** /**