diff --git a/storage/blockexchange/network/network.nim b/storage/blockexchange/network/network.nim index 4a08f203..95870595 100644 --- a/storage/blockexchange/network/network.nim +++ b/storage/blockexchange/network/network.nim @@ -107,16 +107,17 @@ proc send*( let peer = b.peers[id] await b.inflightSema.acquire() - await peer.send(msg) + try: + await peer.send(msg) + finally: + try: + b.inflightSema.release() + except AsyncSemaphoreError as err: + error "Failed to release semaphore", msg = err.msg except CancelledError as error: raise error except CatchableError as err: error "Error sending message", peer = id, msg = err.msg - finally: - try: - b.inflightSema.release() - except AsyncSemaphoreError as err: - error "Failed to release semaphore", msg = err.msg proc handleWantList( b: BlockExcNetwork, peer: NetworkPeer, list: WantList