[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