Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit

Permalink
refactor(sessions): minor cleanup
Browse files Browse the repository at this point in the history
Encapsulate functions for readability, and move code for understanding
  • Loading branch information
hannahhoward committed Dec 22, 2018
1 parent a0fd23c commit b1a82dc
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 21 deletions.
5 changes: 1 addition & 4 deletions session/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ func (s *Session) cidIsWanted(c cid.Cid) bool {
func (s *Session) receiveBlock(ctx context.Context, blk blocks.Block) {
c := blk.Cid()
if s.cidIsWanted(c) {
s.srs.RecordUniqueBlock()
tval, ok := s.liveWants[c]
if ok {
s.latTotal += time.Since(tval)
Expand Down Expand Up @@ -363,10 +364,6 @@ func (s *Session) updateReceiveCounters(ctx context.Context, blk blkRecv) {
ks := blk.blk.Cid()
if s.pastWants.Has(ks) {
s.srs.RecordDuplicateBlock()
} else {
if s.cidIsWanted(ks) {
s.srs.RecordUniqueBlock()
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion session/session_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func TestSessionFindMorePeers(t *testing.T) {
wantReqs := make(chan wantReq, 1)
cancelReqs := make(chan wantReq, 1)
fwm := &fakeWantManager{wantReqs, cancelReqs}
fpm := &fakePeerManager{findMorePeersRequested: make(chan struct{})}
fpm := &fakePeerManager{findMorePeersRequested: make(chan struct{}, 1)}
frs := &fakeRequestSplitter{}
id := testutil.GenerateSessionID()
session := New(ctx, id, fwm, fpm, frs)
Expand Down
37 changes: 21 additions & 16 deletions sessionpeermanager/sessionpeermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,25 @@ func (spm *SessionPeerManager) insertOptimizedPeer(p peer.ID) {
spm.optimizedPeersArr = append([]peer.ID{p}, spm.optimizedPeersArr...)
}

func (spm *SessionPeerManager) removeOptimizedPeer(p peer.ID) {
for i := 0; i < len(spm.optimizedPeersArr); i++ {
if spm.optimizedPeersArr[i] == p {
spm.optimizedPeersArr = append(spm.optimizedPeersArr[:i], spm.optimizedPeersArr[i+1:]...)
return
}
}
}

func (spm *SessionPeerManager) removeUnoptimizedPeer(p peer.ID) {
for i := 0; i < len(spm.unoptimizedPeersArr); i++ {
if spm.unoptimizedPeersArr[i] == p {
spm.unoptimizedPeersArr[i] = spm.unoptimizedPeersArr[len(spm.unoptimizedPeersArr)-1]
spm.unoptimizedPeersArr = spm.unoptimizedPeersArr[:len(spm.unoptimizedPeersArr)-1]
return
}
}
}

type peerFoundMessage struct {
p peer.ID
}
Expand All @@ -160,24 +179,10 @@ func (prm *peerResponseMessage) handle(spm *SessionPeerManager) {
spm.tagPeer(p)
} else {
if isOptimized {
if spm.optimizedPeersArr[0] == p {
return
}
for i := 0; i < len(spm.optimizedPeersArr); i++ {
if spm.optimizedPeersArr[i] == p {
spm.optimizedPeersArr = append(spm.optimizedPeersArr[:i], spm.optimizedPeersArr[i+1:]...)
break
}
}
spm.removeOptimizedPeer(p)
} else {
spm.activePeers[p] = true
for i := 0; i < len(spm.unoptimizedPeersArr); i++ {
if spm.unoptimizedPeersArr[i] == p {
spm.unoptimizedPeersArr[i] = spm.unoptimizedPeersArr[len(spm.unoptimizedPeersArr)-1]
spm.unoptimizedPeersArr = spm.unoptimizedPeersArr[:len(spm.unoptimizedPeersArr)-1]
break
}
}
spm.removeUnoptimizedPeer(p)
}
}
spm.insertOptimizedPeer(p)
Expand Down

0 comments on commit b1a82dc

Please sign in to comment.