瀏覽代碼

Call evthread_use_windows_threads when running with IOCP on windows

Nick Mathewson 12 年之前
父節點
當前提交
52e36feda1
共有 2 個文件被更改,包括 7 次插入1 次删除
  1. 3 0
      changes/le-win-threads
  2. 4 1
      src/common/compat_libevent.c

+ 3 - 0
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.

+ 4 - 1
src/common/compat_libevent.c

@@ -19,6 +19,7 @@
 
 #ifdef HAVE_EVENT2_EVENT_H
 #include <event2/event.h>
+#include <event2/thread.h>
 #else
 #include <event.h>
 #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)