diff options
| author | Eric Holk <eric.holk@gmail.com> | 2012-08-16 15:53:06 -0700 |
|---|---|---|
| committer | Eric Holk <eric.holk@gmail.com> | 2012-08-16 16:46:20 -0700 |
| commit | b2452896d195ce2e8409244e177e04c55cf8a75c (patch) | |
| tree | db85445c2857595c802b402e56d8c5fd940090ae /src | |
| parent | 942649a26073bb84797f8831d39d0b35018e931b (diff) | |
Don't use move, because it is less safe than the unsafe move_it macro.
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/pipes.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs index de13051be2b..62039e4c66f 100644 --- a/src/libcore/pipes.rs +++ b/src/libcore/pipes.rs @@ -1043,10 +1043,14 @@ struct port_set<T: send> : recv<T> { 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<T: send> : recv<T> { 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" } } |
