about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/rt/sched.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/libstd/rt/sched.rs b/src/libstd/rt/sched.rs
index 9c6c53c2064..87b39f06dcf 100644
--- a/src/libstd/rt/sched.rs
+++ b/src/libstd/rt/sched.rs
@@ -1215,18 +1215,22 @@ mod test {
     #[test]
     fn dont_starve_1() {
         use rt::comm::oneshot;
+        use unstable::running_on_valgrind;
 
-        do stress_factor().times {
-            do run_in_mt_newsched_task {
-                let (port, chan) = oneshot();
+        // FIXME: #9407: should work while serialized on valgrind
+        if !running_on_valgrind() {
+            do stress_factor().times {
+                do run_in_mt_newsched_task {
+                    let (port, chan) = oneshot();
 
-                // This task should not be able to starve the sender;
-                // The sender should get stolen to another thread.
-                do spawntask {
-                    while !port.peek() { }
-                }
+                    // This task should not be able to starve the sender;
+                    // The sender should get stolen to another thread.
+                    do spawntask {
+                        while !port.peek() { }
+                    }
 
-                chan.send(());
+                    chan.send(());
+                }
             }
         }
     }