@@ -216,7 +216,7 @@ impl Write for Connection {
216
216
/// to mark the responsible `TcpStream` or `Connection`.
217
217
///
218
218
/// ```notrust
219
- /// reactor_sender.send(Token(1), vec![0, 1, 3, 4]);
219
+ /// reactor_sender.send(Message::Rpc( Token(1), vec![0, 1, 3, 4]) );
220
220
/// ```
221
221
pub struct Reactor {
222
222
listeners : HashMap < Token , TcpListener > ,
@@ -355,21 +355,24 @@ mod tests {
355
355
// Establish a local TcpListener.
356
356
let addr: SocketAddr = "127.0.0.1:5543" . parse ( ) . unwrap ( ) ;
357
357
let listener = TcpListener :: bind ( addr. clone ( ) ) . unwrap ( ) ;
358
- let ( s , r ) = channel ( ) ;
358
+ let ( rpc_server_tx , rpc_server_rx ) = channel ( ) ;
359
359
360
- sender. send ( Message :: Bind ( listener, addr. clone ( ) , s. clone ( ) ) ) ;
360
+ // Create a new non-blocking tcp server.
361
+ sender. send ( Message :: Bind ( listener, addr. clone ( ) , rpc_server_tx. clone ( ) ) ) ;
361
362
362
- // Connect to that socket.
363
- let ( rpc_id_tx, rpc_id_rx) = channel ( ) ;
364
- sender. send ( Message :: Connect ( addr, rpc_id_tx) ) ;
365
- let id = match rpc_id_rx. recv ( ) . unwrap ( ) {
363
+ let ( rpc_client_tx, rpc_client_rx) = channel ( ) ;
364
+
365
+ sender. send ( Message :: Connect ( addr, rpc_client_tx) ) ;
366
+
367
+ let client_id = match rpc_client_rx. recv ( ) . unwrap ( ) {
366
368
Dispatch :: Id ( n) => n,
367
369
_ => panic ! ( "Expected to receive the Connection id/token." )
368
370
} ;
369
- sender. send ( Message :: Rpc ( id, b"abc" . to_vec ( ) ) ) ;
371
+
372
+ sender. send ( Message :: Rpc ( client_id, b"abc" . to_vec ( ) ) ) ;
370
373
371
374
let server = thread:: spawn ( move || {
372
- for msg in r . iter ( ) {
375
+ for msg in rpc_server_rx . iter ( ) {
373
376
match msg {
374
377
Dispatch :: Data ( id, msg) => {
375
378
assert_tx. send ( ( id, msg) ) . expect ( "Could not assert_tx" ) ;
@@ -383,5 +386,17 @@ mod tests {
383
386
assert_eq ! ( new_id, Token ( 2 ) ) ;
384
387
assert_eq ! ( v. len( ) , 3 ) ;
385
388
assert_eq ! ( v, b"abc" ) ;
389
+
390
+ // Send a "response" back.
391
+ sender. send ( Message :: Rpc ( new_id, b"bbb" . to_vec ( ) ) ) ;
392
+
393
+
394
+ match rpc_client_rx. recv ( ) . unwrap ( ) {
395
+ Dispatch :: Data ( id, v) => {
396
+ assert_eq ! ( id, client_id) ;
397
+ assert_eq ! ( v, b"bbb" ) ;
398
+ } ,
399
+ _ => panic ! ( "Unexpected case." )
400
+ }
386
401
}
387
402
}
0 commit comments