diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2010-09-08 15:48:10 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2010-09-08 15:48:18 -0700 |
| commit | 13d6f874316c9f69ab3a29f120ce410da2290a64 (patch) | |
| tree | 10493d6a138904335d3f32166700c8ac6f96b76d /src/rt/rust_kernel.cpp | |
| parent | 2172a3bcf44bbecfe9469451cdaed96b5beee71e (diff) | |
| download | rust-13d6f874316c9f69ab3a29f120ce410da2290a64.tar.gz rust-13d6f874316c9f69ab3a29f120ce410da2290a64.zip | |
XFAIL many.rs since it crashes on win32, and add a time-slice sleep to the kernel message loop to get tests to finish in a sane time.
Diffstat (limited to 'src/rt/rust_kernel.cpp')
| -rw-r--r-- | src/rt/rust_kernel.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/rt/rust_kernel.cpp b/src/rt/rust_kernel.cpp index 9f128c3ec92..ae603379a17 100644 --- a/src/rt/rust_kernel.cpp +++ b/src/rt/rust_kernel.cpp @@ -144,7 +144,19 @@ void rust_kernel::start_kernel_loop() { while (_interrupt_kernel_loop == false) { pump_message_queues(); - sync::yield(); + + // FIXME: this is a complete hack to make the testsuite finish in a + // sane time when executing under valgrind. The whole message-loop + // system here needs replacement with an OS-level event-queue such + // that actually wait on inter-thread notices, rather than + // busy-waiting. + + size_t ms = TIME_SLICE_IN_MS; +#if defined(__WIN32__) + Sleep(ms); +#else + usleep(ms * 1000); +#endif } } @@ -208,3 +220,14 @@ rust_kernel::free_handles(hash_map<T*, rust_handle<T>* > &map) { delete value; } } + +// +// Local Variables: +// mode: C++ +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// compile-command: "make -k -C .. 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; +// End: +// |
