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 @@ -29,6 +29,7 @@ use crate::error::{Error, Result};
29
29
use crate :: sync:: channel:: { read_message, write_message} ;
30
30
use crate :: ttrpc:: { Code , Request , Response } ;
31
31
use crate :: MessageHeader ;
32
+ use std:: time:: Duration ;
32
33
33
34
type Sender = mpsc:: Sender < ( Vec < u8 > , mpsc:: SyncSender < Result < Vec < u8 > > > ) > ;
34
35
type Receiver = mpsc:: Receiver < ( Vec < u8 > , mpsc:: SyncSender < Result < Vec < u8 > > > ) > ;
@@ -167,9 +168,17 @@ impl Client {
167
168
self . sender_tx
168
169
. send ( ( buf, tx) )
169
170
. map_err ( err_to_Others ! ( e, "Send packet to sender error " ) ) ?;
170
- let result = rx
171
- . recv ( )
172
- . map_err ( err_to_Others ! ( e, "Recive packet from recver error " ) ) ?;
171
+
172
+ let result: Result < Vec < u8 > > ;
173
+ if req. timeout_nano == 0 {
174
+ result = rx
175
+ . recv ( )
176
+ . map_err ( err_to_Others ! ( e, "Receive packet from recver error: " ) ) ?;
177
+ } else {
178
+ result = rx
179
+ . recv_timeout ( Duration :: from_nanos ( req. timeout_nano as u64 ) )
180
+ . map_err ( err_to_Others ! ( e, "Receive packet from recver timeout: " ) ) ?;
181
+ }
173
182
174
183
let buf = result?;
175
184
let mut s = CodedInputStream :: from_bytes ( & buf) ;
You can’t perform that action at this time.
0 commit comments