From eb0afce3f9f87b72f639e59ad2270355df343c09 Mon Sep 17 00:00:00 2001 From: Kleissner Date: Thu, 6 May 2021 14:54:28 +0200 Subject: [PATCH] Fix race condition in cmdResponse. --- Commands.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Commands.go b/Commands.go index 2d2cd37..b8ac25c 100644 --- a/Commands.go +++ b/Commands.go @@ -148,7 +148,7 @@ func (peer *PeerInfo) cmdResponse(msg *MessageResponse) { } for _, hash2Peer := range msg.Hash2Peers { - info.ResultChan <- &dht.NodeMessage{SenderID: peer.NodeID, Closest: records2Nodes(hash2Peer.Closest, msg.connection.Network), Storing: records2Nodes(hash2Peer.Storing, msg.connection.Network)} + info.QueueResult(&dht.NodeMessage{SenderID: peer.NodeID, Closest: records2Nodes(hash2Peer.Closest, msg.connection.Network), Storing: records2Nodes(hash2Peer.Storing, msg.connection.Network)}) if hash2Peer.IsLast { info.Done() @@ -156,7 +156,7 @@ func (peer *PeerInfo) cmdResponse(msg *MessageResponse) { } for _, file := range msg.FilesEmbed { - info.ResultChan <- &dht.NodeMessage{SenderID: peer.NodeID, Data: file.Data} + info.QueueResult(&dht.NodeMessage{SenderID: peer.NodeID, Data: file.Data}) info.Done() info.Terminate() // file was found, terminate the request.