From b2452896d195ce2e8409244e177e04c55cf8a75c Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 16 Aug 2012 15:53:06 -0700 Subject: [PATCH] Don't use move, because it is less safe than the unsafe move_it macro. --- src/libcore/pipes.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs index de13051be2be..62039e4c66f4 100644 --- a/src/libcore/pipes.rs +++ b/src/libcore/pipes.rs @@ -1043,10 +1043,14 @@ struct port_set : recv { let mut ports = ~[]; ports <-> self.ports; while result == none && ports.len() > 0 { - let i = wait_many(ports.map(|p| p.header())); + let i = wait_many(ports); match move ports[i].try_recv() { - some(copy m) => { - result = some(move m); + // FIXME (#2329): use this version once move from enum works. + //some(copy m) => { + // result = some(move m); + //} + some(m) => { + result = some(move_it!(m)); } none => { // Remove this port. @@ -1065,7 +1069,9 @@ struct port_set : recv { fn recv() -> T { match move self.try_recv() { - some(copy x) => move x, + // FIXME (#2329): use this version once move from enum works. + //some(copy x) => move x, + some(x) => move_it!(x), none => fail ~"port_set: endpoints closed" } }