File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -177,10 +177,19 @@ impl Client {
177
177
. await
178
178
. map_err ( |e| Error :: Others ( format ! ( "Send packet to sender error {:?}" , e) ) ) ?;
179
179
180
- let result = rx
181
- . recv ( )
180
+ let result = if req. timeout_nano == 0 {
181
+ rx. recv ( )
182
+ . await
183
+ . ok_or_else ( || Error :: Others ( "Receive packet from receiver error" . to_string ( ) ) ) ?
184
+ } else {
185
+ tokio:: time:: timeout (
186
+ std:: time:: Duration :: from_nanos ( req. timeout_nano as u64 ) ,
187
+ rx. recv ( ) ,
188
+ )
182
189
. await
183
- . ok_or_else ( || Error :: Others ( "Recive packet from recver error" . to_string ( ) ) ) ?;
190
+ . map_err ( |e| Error :: Others ( format ! ( "Receive packet timeout {:?}" , e) ) ) ?
191
+ . ok_or_else ( || Error :: Others ( "Receive packet from receiver error" . to_string ( ) ) ) ?
192
+ } ;
184
193
185
194
let buf = result?;
186
195
let mut s = CodedInputStream :: from_bytes ( & buf) ;
You can’t perform that action at this time.
0 commit comments