File tree 1 file changed +11
-6
lines changed
1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -107,6 +107,7 @@ where
107
107
Poll :: Ready ( Some ( Ok ( mes) ) ) => {
108
108
let key = mes. stream_key ( ) ;
109
109
this. keys . entry ( key) . or_default ( ) . push_back ( mes) ;
110
+ // keep polling
110
111
}
111
112
Poll :: Ready ( Some ( Err ( err) ) ) => {
112
113
* this. ended = true ;
@@ -116,14 +117,18 @@ where
116
117
* this. ended = true ;
117
118
break ;
118
119
}
119
- Poll :: Pending => return Poll :: Pending ,
120
- }
121
- if !this. keys . values ( ) . any ( |ms| ms. is_empty ( ) ) {
122
- // if none of the streams are empty
123
- break ;
120
+ Poll :: Pending => {
121
+ // take a break
122
+ break ;
123
+ }
124
124
}
125
125
}
126
- Poll :: Ready ( Self :: next ( this. keys ) . map ( Ok ) )
126
+ if * this. ended || !this. keys . values ( ) . any ( |ms| ms. is_empty ( ) ) {
127
+ // if none of the streams are empty
128
+ return Poll :: Ready ( Self :: next ( this. keys ) . map ( Ok ) ) ;
129
+ } else {
130
+ Poll :: Pending
131
+ }
127
132
}
128
133
}
129
134
You can’t perform that action at this time.
0 commit comments