diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-01-05 18:38:02 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-01-05 18:38:02 -0800 |
| commit | 0ca3a8cca718d6715a73fd0931cda3135d68ebd1 (patch) | |
| tree | dc50f97aee5b2c211f315359b52b7020a5e771ed | |
| parent | 308c1baead1ec1c89f186b2939b1b40a64357cdd (diff) | |
| parent | cc18053d9c070a65b6b5f686968ebd901c1d60c3 (diff) | |
| download | rust-0ca3a8cca718d6715a73fd0931cda3135d68ebd1.tar.gz rust-0ca3a8cca718d6715a73fd0931cda3135d68ebd1.zip | |
rollup merge of #20548: tshepang/fix-ping-pong-benchmark
Looks like no one has checked this benchmark in a long time: its main thread quit too early, taking down the worker threads before they were done.
| -rw-r--r-- | src/test/bench/rt-messaging-ping-pong.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/test/bench/rt-messaging-ping-pong.rs b/src/test/bench/rt-messaging-ping-pong.rs index adf773a2f25..5ecc580de08 100644 --- a/src/test/bench/rt-messaging-ping-pong.rs +++ b/src/test/bench/rt-messaging-ping-pong.rs @@ -35,21 +35,24 @@ fn ping_pong_bench(n: uint, m: uint) { // Create a channel: B->A let (btx, brx) = channel(); - Thread::spawn(move|| { + let guard_a = Thread::spawn(move|| { let (tx, rx) = (atx, brx); for _ in range(0, n) { tx.send(()).unwrap(); rx.recv().unwrap(); } - }).detach(); + }); - Thread::spawn(move|| { + let guard_b = Thread::spawn(move|| { let (tx, rx) = (btx, arx); for _ in range(0, n) { rx.recv().unwrap(); tx.send(()).unwrap(); } - }).detach(); + }); + + guard_a.join().ok(); + guard_b.join().ok(); } for _ in range(0, m) { |
