diff --git a/changes/le-win-threads b/changes/le-win-threads new file mode 100644 index 0000000000..5be44a2b55 --- /dev/null +++ b/changes/le-win-threads @@ -0,0 +1,3 @@ + o Major bugfixes (IOCP): + - When using IOCP on windows, we need to enable Libevent windows threading + support. Bugfix on 0.2.3.1-alpha. diff --git a/src/common/compat_libevent.c b/src/common/compat_libevent.c index c338dd6c05..8752de7492 100644 --- a/src/common/compat_libevent.c +++ b/src/common/compat_libevent.c @@ -19,6 +19,7 @@ #ifdef HAVE_EVENT2_EVENT_H #include +#include #else #include #endif @@ -183,8 +184,10 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg) struct event_config *cfg = event_config_new(); #if defined(MS_WINDOWS) && defined(USE_BUFFEREVENTS) - if (! torcfg->disable_iocp) + if (! torcfg->disable_iocp) { + evthread_use_windows_threads(); event_config_set_flag(cfg, EVENT_BASE_FLAG_STARTUP_IOCP); + } #endif #if defined(LIBEVENT_VERSION_NUMBER) && LIBEVENT_VERSION_NUMBER >= V(2,0,7)