multi: add reset closure to kvdb.View
This commit adds a reset() closure to the kvdb.View function which will be called before each retry (including the first) of the view transaction. The reset() closure can be used to reset external state (eg slices or maps) where the view closure puts intermediate results.
This commit is contained in:
47 files changed
+340
-82
No files matched your search
@@ -1117,6 +1117,9 @@ func TestSignatureAnnouncementLocalFirst(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -1150,6 +1153,9 @@ func TestSignatureAnnouncementLocalFirst(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil && err != channeldb.ErrWaitingProofNotFound {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -1219,6 +1225,9 @@ func TestOrphanSignatureAnnouncement(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -1355,6 +1364,9 @@ func TestOrphanSignatureAnnouncement(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -1466,6 +1478,9 @@ func TestSignatureAnnouncementRetryAtStartup(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -1570,6 +1585,9 @@ out:
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil && err != channeldb.ErrWaitingProofNotFound {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -1754,6 +1772,9 @@ func TestSignatureAnnouncementFullProofWhenRemoteProof(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil && err != channeldb.ErrWaitingProofNotFound {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -2583,6 +2604,9 @@ func TestReceiveRemoteChannelUpdateFirst(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
@@ -2612,6 +2636,9 @@ func TestReceiveRemoteChannelUpdateFirst(t *testing.T) {
|
||||
number++
|
||||
return nil
|
||||
},
|
||||
func() {
|
||||
number = 0
|
||||
},
|
||||
); err != nil && err != channeldb.ErrWaitingProofNotFound {
|
||||
t.Fatalf("unable to retrieve objects from store: %v", err)
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ func readMessage(msgBytes []byte) (lnwire.Message, error) {
|
||||
// Messages returns the total set of messages that exist within the store for
|
||||
// all peers.
|
||||
func (s *MessageStore) Messages() (map[[33]byte][]lnwire.Message, error) {
|
||||
msgs := make(map[[33]byte][]lnwire.Message)
|
||||
var msgs map[[33]byte][]lnwire.Message
|
||||
err := kvdb.View(s.db, func(tx kvdb.RTx) error {
|
||||
messageStore := tx.ReadBucket(messageStoreBucket)
|
||||
if messageStore == nil {
|
||||
@@ -224,6 +224,8 @@ func (s *MessageStore) Messages() (map[[33]byte][]lnwire.Message, error) {
|
||||
msgs[pubKey] = append(msgs[pubKey], msg)
|
||||
return nil
|
||||
})
|
||||
}, func() {
|
||||
msgs = make(map[[33]byte][]lnwire.Message)
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -262,6 +264,8 @@ func (s *MessageStore) MessagesForPeer(
|
||||
}
|
||||
|
||||
return nil
|
||||
}, func() {
|
||||
msgs = nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -272,7 +276,7 @@ func (s *MessageStore) MessagesForPeer(
|
||||
|
||||
// Peers returns the public key of all peers with messages within the store.
|
||||
func (s *MessageStore) Peers() (map[[33]byte]struct{}, error) {
|
||||
peers := make(map[[33]byte]struct{})
|
||||
var peers map[[33]byte]struct{}
|
||||
err := kvdb.View(s.db, func(tx kvdb.RTx) error {
|
||||
messageStore := tx.ReadBucket(messageStoreBucket)
|
||||
if messageStore == nil {
|
||||
@@ -285,6 +289,8 @@ func (s *MessageStore) Peers() (map[[33]byte]struct{}, error) {
|
||||
peers[pubKey] = struct{}{}
|
||||
return nil
|
||||
})
|
||||
}, func() {
|
||||
peers = make(map[[33]byte]struct{})
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in new issue
Block a user