File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -1043,10 +1043,14 @@ struct port_set<T: send> : recv<T> {
1043
1043
let mut ports = ~[ ] ;
1044
1044
ports <-> self . ports ;
1045
1045
while result == none && ports. len ( ) > 0 {
1046
- let i = wait_many ( ports. map ( |p| p . header ( ) ) ) ;
1046
+ let i = wait_many ( ports) ;
1047
1047
match move ports[ i] . try_recv ( ) {
1048
- some( copy m) => {
1049
- result = some ( move m) ;
1048
+ // FIXME (#2329): use this version once move from enum works.
1049
+ //some(copy m) => {
1050
+ // result = some(move m);
1051
+ //}
1052
+ some( m) => {
1053
+ result = some ( move_it ! ( m) ) ;
1050
1054
}
1051
1055
none => {
1052
1056
// Remove this port.
@@ -1065,7 +1069,9 @@ struct port_set<T: send> : recv<T> {
1065
1069
1066
1070
fn recv ( ) -> T {
1067
1071
match move self . try_recv ( ) {
1068
- some( copy x) => move x,
1072
+ // FIXME (#2329): use this version once move from enum works.
1073
+ //some(copy x) => move x,
1074
+ some( x) => move_it ! ( x) ,
1069
1075
none => fail ~"port_set: endpoints closed"
1070
1076
}
1071
1077
}
You can’t perform that action at this time.
0 commit comments