aboutsummaryrefslogtreecommitdiff
path: root/src/rt/sync
diff options
context:
space:
mode:
authorMichael Bebenita <[email protected]>2010-08-16 18:44:26 -0700
committerMichael Bebenita <[email protected]>2010-08-16 18:44:26 -0700
commit5d98a311e41316635327479278e3d41be54771d1 (patch)
tree8a6ff71650223b2b6c452074308d4d6b4d2bea81 /src/rt/sync
parentUn-xfailed working tests. (diff)
downloadrust-5d98a311e41316635327479278e3d41be54771d1.tar.xz
rust-5d98a311e41316635327479278e3d41be54771d1.zip
Putting out the burning tree on Windows. Turns out you can completely starve threads by not yielding on windows/vmware, really weird.
Diffstat (limited to 'src/rt/sync')
-rw-r--r--src/rt/sync/sync.cpp2
-rw-r--r--src/rt/sync/timer.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/rt/sync/sync.cpp b/src/rt/sync/sync.cpp
index eba51a49..09a6f291 100644
--- a/src/rt/sync/sync.cpp
+++ b/src/rt/sync/sync.cpp
@@ -5,7 +5,7 @@ void sync::yield() {
#ifdef __APPLE__
pthread_yield_np();
#elif __WIN32__
-
+ Sleep(1);
#else
pthread_yield();
#endif
diff --git a/src/rt/sync/timer.cpp b/src/rt/sync/timer.cpp
index e45dd633..0487b397 100644
--- a/src/rt/sync/timer.cpp
+++ b/src/rt/sync/timer.cpp
@@ -6,12 +6,12 @@
#endif
timer::timer() {
- reset(0);
#if __WIN32__
uint64_t ticks_per_second;
QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second);
_ticks_per_us = ticks_per_second / 1000000;
#endif
+ reset(0);
}
void