12
12
13
13
async def challenge (url , user_id , fd_in , fd_out ):
14
14
async with Exchanger (user_id , Exchanger .ROLE_APP , url = url ) as (amqp_sender , amqp_receiver ):
15
- sender = send_from_fd_to_amqp (fd_in , amqp_sender )
16
- receiver = send_from_amqp_to_fd (amqp_receiver , fd_out )
17
- _ , pending = await asyncio .wait ([sender , receiver ], return_when = asyncio .FIRST_COMPLETED )
15
+ pending = [
16
+ asyncio .ensure_future (coro ) for coro in [
17
+ send_from_fd_to_amqp (fd_in , amqp_sender ),
18
+ send_from_amqp_to_fd (amqp_receiver , fd_out )
19
+ ]
20
+ ]
21
+ _ , pending = await asyncio .wait (pending , return_when = asyncio .FIRST_COMPLETED )
18
22
for task in pending :
19
23
task .cancel ()
20
24
@@ -38,8 +42,9 @@ async def authenticate(url, authenticator):
38
42
39
43
async def send_from_fd_to_amqp (fd , sender ):
40
44
async for line in FdLineReader (fd ):
41
- logger .debug ('sending message %r' , line )
42
- await sender .send (line )
45
+ if line :
46
+ logger .debug ('sending message %r' , line )
47
+ await sender .send (line )
43
48
44
49
45
50
async def send_from_amqp_to_fd (receiver , fd ):
0 commit comments