Skip to content

Commit a3d5a0b

Browse files
authored
fix: sync pool race condition (#947)
1 parent d00d2cc commit a3d5a0b

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

internal/tracker/seen.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ type SeenTracker struct {
5757
currentIdx int
5858
}
5959

60-
var pool sync.Pool
60+
var pool = sync.Pool{
61+
New: func() interface{} {
62+
return &SeenTracker{}
63+
},
64+
}
6165

6266
func (s *SeenTracker) reset() {
6367
// Always contains a root element at index 0.
@@ -331,12 +335,6 @@ func (s *SeenTracker) checkArray(node *unstable.Node) (first bool, err error) {
331335
}
332336

333337
func (s *SeenTracker) checkInlineTable(node *unstable.Node) (first bool, err error) {
334-
if pool.New == nil {
335-
pool.New = func() interface{} {
336-
return &SeenTracker{}
337-
}
338-
}
339-
340338
s = pool.Get().(*SeenTracker)
341339
s.reset()
342340

0 commit comments

Comments
 (0)