ソースを参照

Make stable bloom filter threadsafe

tags/v2.0.0-rc1
9seconds 5年前
コミット
cae33a22e6
1個のファイルの変更6行の追加0行の削除
  1. 6
    0
      antireplay/stable_bloom_filter.go

+ 6
- 0
antireplay/stable_bloom_filter.go ファイルの表示

@@ -1,6 +1,8 @@
1 1
 package antireplay
2 2
 
3 3
 import (
4
+	"sync"
5
+
4 6
 	"github.com/9seconds/mtg/v2/mtglib"
5 7
 	"github.com/OneOfOne/xxhash"
6 8
 	boom "github.com/tylertreat/BoomFilters"
@@ -8,9 +10,13 @@ import (
8 10
 
9 11
 type stableBloomFilter struct {
10 12
 	filter boom.StableBloomFilter
13
+	mutex  sync.Mutex
11 14
 }
12 15
 
13 16
 func (s *stableBloomFilter) SeenBefore(digest []byte) bool {
17
+	s.mutex.Lock()
18
+	defer s.mutex.Unlock()
19
+
14 20
 	return s.filter.TestAndAdd(digest)
15 21
 }
16 22
 

読み込み中…
キャンセル
保存