mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Use the EVENT_BASE_FLAG_NOLOCK flag to prevent socketpair() invocation
In Tor 0.2.2, we never need the event base to be notifiable, since we don't call it from other threads. This is a workaround for bug 4457, which is not actually a Tor bug IMO.
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
o Minor bugfixes:
|
||||||
|
- Initialize Libevent with the EVENT_BASE_FLAG_NOLOCK flag enabled, so
|
||||||
|
that it doesn't attempt to allocate a socketpair. This could cause
|
||||||
|
some problems on windows systems with overzealous firewalls. Fix for
|
||||||
|
bug 4457; workaround for Libevent versions 2.0.1-alpha through
|
||||||
|
2.0.15-stable.
|
||||||
|
|
||||||
|
|
||||||
@@ -177,7 +177,18 @@ tor_libevent_initialize(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_EVENT2_EVENT_H
|
#ifdef HAVE_EVENT2_EVENT_H
|
||||||
the_event_base = event_base_new();
|
{
|
||||||
|
struct event_config *cfg = event_config_new();
|
||||||
|
|
||||||
|
/* In 0.2.2, we don't use locking at all. Telling Libevent not to try to
|
||||||
|
* turn it on can avoid a needless socketpair() attempt.
|
||||||
|
*/
|
||||||
|
event_config_set_flag(cfg, EVENT_BASE_FLAG_NOLOCK);
|
||||||
|
|
||||||
|
the_event_base = event_base_new_with_config(cfg);
|
||||||
|
|
||||||
|
event_config_free(cfg);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
the_event_base = event_init();
|
the_event_base = event_init();
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user