Browse Source
Make sure not to fail in for loop sending to takers
new-http-api
Daniel Karzel
3 years ago
No known key found for this signature in database
GPG Key ID: 30C3FC2E438ADB6E
1 changed files with
10 additions and
3 deletions
-
daemon/src/maker_inc_connections.rs
|
|
@ -157,9 +157,16 @@ impl Actor { |
|
|
|
async fn handle_broadcast_order(&mut self, msg: BroadcastOrder) -> Result<()> { |
|
|
|
let order = msg.0; |
|
|
|
for (taker_id, conn) in self.write_connections.clone() { |
|
|
|
tracing::trace!(%taker_id, "sending new order for broadcast to connection: {:?}", order); |
|
|
|
conn.do_send_async(wire::MakerToTaker::CurrentOrder(order.clone())) |
|
|
|
.await?; |
|
|
|
if conn |
|
|
|
.do_send_async(wire::MakerToTaker::CurrentOrder(order.clone())) |
|
|
|
.await |
|
|
|
.is_err() |
|
|
|
{ |
|
|
|
tracing::trace!(%taker_id, "removing outdated connection to taker because unable to send order: {:?}", order); |
|
|
|
self.write_connections.remove(&taker_id); |
|
|
|
} else { |
|
|
|
tracing::trace!(%taker_id, "sent new order: {:?}", order); |
|
|
|
} |
|
|
|
} |
|
|
|
Ok(()) |
|
|
|
} |
|
|
|