Skip to content

Commit 581e6e6

Browse files
committed
merge main
1 parent e0da0e7 commit 581e6e6

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

db/seg/seg_paged_rw.go

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -32,46 +32,6 @@ import (
3232

3333
var be = binary.BigEndian
3434

35-
// Global pools for page work items and results - optimized for GC
36-
var (
37-
pageWorkItemPool = sync.Pool{New: func() any { return &pageWorkItem{} }}
38-
pageResultPool = sync.Pool{New: func() any { return &pageResult{} }}
39-
)
40-
41-
func getPageWorkItem() *pageWorkItem { return pageWorkItemPool.Get().(*pageWorkItem) }
42-
func putPageWorkItem(item *pageWorkItem) {
43-
if item == nil {
44-
return
45-
}
46-
item.seq = 0
47-
item.uncompressedData = item.uncompressedData[:0]
48-
pageWorkItemPool.Put(item)
49-
}
50-
51-
func getPageResult() *pageResult { return pageResultPool.Get().(*pageResult) }
52-
func putPageResult(r *pageResult) {
53-
r.seq = 0
54-
r.data = r.data[:0]
55-
pageResultPool.Put(r)
56-
}
57-
58-
func drainResultCh(ch chan *pageResult) {
59-
for {
60-
select {
61-
case r := <-ch:
62-
putPageResult(r)
63-
default:
64-
return
65-
}
66-
}
67-
}
68-
69-
func drainPendingResults(m map[int]*pageResult) {
70-
for _, r := range m {
71-
putPageResult(r)
72-
}
73-
}
74-
7535
func GetFromPage(key, compressedPage []byte, compressionBuf []byte, compressionEnabled bool) (v []byte, compressionBufOut []byte) {
7636
var err error
7737
var page []byte
@@ -619,3 +579,43 @@ func growslice(b []byte, wantLength int) []byte {
619579
}
620580
return make([]byte, wantLength)
621581
}
582+
583+
// Global pools for page work items and results - optimized for GC
584+
var (
585+
pageWorkItemPool = sync.Pool{New: func() any { return &pageWorkItem{} }}
586+
pageResultPool = sync.Pool{New: func() any { return &pageResult{} }}
587+
)
588+
589+
func getPageWorkItem() *pageWorkItem { return pageWorkItemPool.Get().(*pageWorkItem) }
590+
func putPageWorkItem(item *pageWorkItem) {
591+
if item == nil {
592+
return
593+
}
594+
item.seq = 0
595+
item.uncompressedData = item.uncompressedData[:0]
596+
pageWorkItemPool.Put(item)
597+
}
598+
599+
func getPageResult() *pageResult { return pageResultPool.Get().(*pageResult) }
600+
func putPageResult(r *pageResult) {
601+
r.seq = 0
602+
r.data = r.data[:0]
603+
pageResultPool.Put(r)
604+
}
605+
606+
func drainResultCh(ch chan *pageResult) {
607+
for {
608+
select {
609+
case r := <-ch:
610+
putPageResult(r)
611+
default:
612+
return
613+
}
614+
}
615+
}
616+
617+
func drainPendingResults(m map[int]*pageResult) {
618+
for _, r := range m {
619+
putPageResult(r)
620+
}
621+
}

0 commit comments

Comments
 (0)