about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libcore/comm.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libcore/comm.rs b/src/libcore/comm.rs
index e20278bc393..7e1ef280ea6 100644
--- a/src/libcore/comm.rs
+++ b/src/libcore/comm.rs
@@ -211,6 +211,9 @@ fn recv_<T: send>(p: *rust_port) -> T {
 }
 
 fn peek_(p: *rust_port) -> bool {
+    // Yield here before we check to see if someone sent us a message
+    // FIXME #524, if the compilergenerates yields, we don't need this
+    task::yield();
     rustrt::rust_port_size(p) != 0u as libc::size_t
 }