peer: Unexport the mru inventory map.

This unexports the mruInventoryMap type since it is only needed within
the peer package.
This commit is contained in:
Dave Collins 2015-11-20 21:17:41 -06:00
parent a4aa131dd5
commit 1217e00d39
3 changed files with 14 additions and 14 deletions

View file

@ -13,10 +13,10 @@ import (
"github.com/btcsuite/btcd/wire"
)
// MruInventoryMap provides a concurrency safe map that is limited to a maximum
// mruInventoryMap provides a concurrency safe map that is limited to a maximum
// number of items with eviction for the oldest entry when the limit is
// exceeded.
type MruInventoryMap struct {
type mruInventoryMap struct {
invMtx sync.Mutex
invMap map[wire.InvVect]*list.Element // nearly O(1) lookups
invList *list.List // O(1) insert, update, delete
@ -26,7 +26,7 @@ type MruInventoryMap struct {
// String returns the map as a human-readable string.
//
// This function is safe for concurrent access.
func (m *MruInventoryMap) String() string {
func (m *mruInventoryMap) String() string {
m.invMtx.Lock()
defer m.invMtx.Unlock()
@ -48,7 +48,7 @@ func (m *MruInventoryMap) String() string {
// Exists returns whether or not the passed inventory item is in the map.
//
// This function is safe for concurrent access.
func (m *MruInventoryMap) Exists(iv *wire.InvVect) bool {
func (m *mruInventoryMap) Exists(iv *wire.InvVect) bool {
m.invMtx.Lock()
defer m.invMtx.Unlock()
@ -63,7 +63,7 @@ func (m *MruInventoryMap) Exists(iv *wire.InvVect) bool {
// item makes it the most recently used item.
//
// This function is safe for concurrent access.
func (m *MruInventoryMap) Add(iv *wire.InvVect) {
func (m *mruInventoryMap) Add(iv *wire.InvVect) {
m.invMtx.Lock()
defer m.invMtx.Unlock()
@ -107,7 +107,7 @@ func (m *MruInventoryMap) Add(iv *wire.InvVect) {
// Delete deletes the passed inventory item from the map (if it exists).
//
// This function is safe for concurrent access.
func (m *MruInventoryMap) Delete(iv *wire.InvVect) {
func (m *mruInventoryMap) Delete(iv *wire.InvVect) {
m.invMtx.Lock()
defer m.invMtx.Unlock()
@ -117,12 +117,12 @@ func (m *MruInventoryMap) Delete(iv *wire.InvVect) {
}
}
// NewMruInventoryMap returns a new inventory map that is limited to the number
// newMruInventoryMap returns a new inventory map that is limited to the number
// of entries specified by limit. When the number of entries exceeds the limit,
// the oldest (least recently used) entry will be removed to make room for the
// new entry.
func NewMruInventoryMap(limit uint) *MruInventoryMap {
m := MruInventoryMap{
func newMruInventoryMap(limit uint) *mruInventoryMap {
m := mruInventoryMap{
invMap: make(map[wire.InvVect]*list.Element),
invList: list.New(),
limit: limit,

View file

@ -44,7 +44,7 @@ testLoop:
// limit and add all of the test inventory vectors. This will
// cause evicition since there are more test inventory vectors
// than the limits.
mruInvMap := NewMruInventoryMap(uint(test.limit))
mruInvMap := newMruInventoryMap(uint(test.limit))
for j := 0; j < numInvVects; j++ {
mruInvMap.Add(invVects[j])
}
@ -127,7 +127,7 @@ func TestMruInventoryMapStringer(t *testing.T) {
iv2 := wire.NewInvVect(wire.InvTypeBlock, hash2)
// Create new mru inventory map and add the inventory vectors.
mruInvMap := NewMruInventoryMap(uint(2))
mruInvMap := newMruInventoryMap(uint(2))
mruInvMap.Add(iv1)
mruInvMap.Add(iv2)
@ -162,7 +162,7 @@ func BenchmarkMruInventoryList(b *testing.B) {
// Benchmark the add plus evicition code.
limit := 20000
mruInvMap := NewMruInventoryMap(uint(limit))
mruInvMap := newMruInventoryMap(uint(limit))
for i := 0; i < b.N; i++ {
mruInvMap.Add(invVects[i%numInvVects])
}

View file

@ -403,7 +403,7 @@ type Peer struct {
versionSent bool
verAckReceived bool
knownInventory *MruInventoryMap
knownInventory *mruInventoryMap
prevGetBlocksMtx sync.Mutex
prevGetBlocksBegin *wire.ShaHash
prevGetBlocksStop *wire.ShaHash
@ -2045,7 +2045,7 @@ func newPeerBase(cfg *Config, inbound bool) *Peer {
p := Peer{
inbound: inbound,
knownInventory: NewMruInventoryMap(maxKnownInventory),
knownInventory: newMruInventoryMap(maxKnownInventory),
stallControl: make(chan stallControlMsg, 1), // nonblocking sync
outputQueue: make(chan outMsg, outputBufferSize),
sendQueue: make(chan outMsg, 1), // nonblocking sync