mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 22:58:50 +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:
parent
2b7bdc295a
commit
7363eae13c
2 changed files with 20 additions and 1 deletions
8
changes/bug4457
Normal file
8
changes/bug4457
Normal file
|
@ -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
|
||||
|
||||
#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
|
||||
the_event_base = event_init();
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue