diff --git a/les/flowcontrol/manager.go b/les/flowcontrol/manager.go index 9d2ea8067f..c0469e7b66 100644 --- a/les/flowcontrol/manager.go +++ b/les/flowcontrol/manager.go @@ -190,8 +190,8 @@ func (self *ClientManager) accept(node *cmNode, time int64) bool { self.update(time) if !self.canStartReq() { resume := make(chan bool) - self.resumeQueue <- resume self.lock.Unlock() + self.resumeQueue <- resume <-resume self.lock.Lock() if _, ok := self.nodes[node]; !ok { diff --git a/les/odr_peerset.go b/les/odr_peerset.go index ff6a223543..0323ce27fc 100644 --- a/les/odr_peerset.go +++ b/les/odr_peerset.go @@ -67,7 +67,7 @@ func (ps *odrPeerSet) unregister(p *peer) error { func (ps *odrPeerSet) peerPriority(p *peer, info *odrPeerInfo, req LesOdrRequest) uint64 { tm := p.fcServer.CanSend(req.GetCost(p)) - if info.reqCnt > 0 { + if info.reqTimeCnt > 0 { tm += info.reqTimeSum / info.reqTimeCnt } return tm