Don't use move, because it is less safe than the unsafe move_it macro.

This commit is contained in:
Eric Holk
2012-08-16 15:53:06 -07:00
parent 942649a260
commit b2452896d1

View File

@@ -1043,10 +1043,14 @@ struct port_set<T: send> : recv<T> {
let mut ports = ~[]; let mut ports = ~[];
ports <-> self.ports; ports <-> self.ports;
while result == none && ports.len() > 0 { 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() { match move ports[i].try_recv() {
some(copy m) => { // FIXME (#2329): use this version once move from enum works.
result = some(move m); //some(copy m) => {
// result = some(move m);
//}
some(m) => {
result = some(move_it!(m));
} }
none => { none => {
// Remove this port. // Remove this port.
@@ -1065,7 +1069,9 @@ struct port_set<T: send> : recv<T> {
fn recv() -> T { fn recv() -> T {
match move self.try_recv() { 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" none => fail ~"port_set: endpoints closed"
} }
} }