[tor-commits] [tor/master] Fix windows compilation of condition code

nickm at torproject.org nickm at torproject.org
Wed Jan 21 19:50:31 UTC 2015


commit 9fdc0d059456146722dc81f2b58672b533a2bb71
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Sep 25 23:31:40 2013 -0400

    Fix windows compilation of condition code
---
 src/common/compat.c            |    1 -
 src/common/compat_winthreads.c |   11 +++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/common/compat.c b/src/common/compat.c
index a22a61a..5575316 100644
--- a/src/common/compat.c
+++ b/src/common/compat.c
@@ -27,7 +27,6 @@
 #include "compat.h"
 
 #ifdef _WIN32
-#include <process.h>
 #include <windows.h>
 #include <sys/locking.h>
 #endif
diff --git a/src/common/compat_winthreads.c b/src/common/compat_winthreads.c
index 0ab26b7..e19b1ca 100644
--- a/src/common/compat_winthreads.c
+++ b/src/common/compat_winthreads.c
@@ -9,6 +9,10 @@
 #include "util.h"
 #include "container.h"
 #include "torlog.h"
+#include <process.h>
+
+/* This value is more or less total cargo-cult */
+#define SPIN_COUNT 2000
 
 /** Minimalist interface to run a void function in the background.  On
  * Unix calls fork, on win32 calls beginthread.  Returns -1 on failure.
@@ -108,7 +112,6 @@ tor_cond_signal_impl(tor_cond_t *cond, int broadcast)
   cond->generation++;
   SetEvent(cond->event);
   LeaveCriticalSection(&cond->lock);
-  return 0;
 }
 void
 tor_cond_signal_one(tor_cond_t *cond)
@@ -122,15 +125,15 @@ tor_cond_signal_all(tor_cond_t *cond)
 }
 
 int
-tor_cond_wait(tor_cond_t *cond, tor_mutex_t *lock, const struct timeval *tv)
+tor_cond_wait(tor_cond_t *cond, tor_mutex_t *lock_, const struct timeval *tv)
 {
-  CRITICAL_SECTION *lock = &lock->mutex;
+  CRITICAL_SECTION *lock = &lock_->mutex;
   int generation_at_start;
   int waiting = 1;
   int result = -1;
   DWORD ms = INFINITE, ms_orig = INFINITE, startTime, endTime;
   if (tv)
-    ms_orig = ms = evutil_tv_to_msec_(tv);
+    ms_orig = ms = tv->tv_sec*1000 + (tv->tv_usec+999)/1000;
 
   EnterCriticalSection(&cond->lock);
   ++cond->n_waiting;





More information about the tor-commits mailing list