summaryrefslogtreecommitdiff
path: root/internal/event
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-18 20:54:35 +0200
committerPaul Buetow <paul@buetow.org>2026-03-18 20:54:35 +0200
commitcd554b0af706b5f62b4e1bfde04091052b4aac61 (patch)
treee6d02f1c2a1da27da17386e8832c2d4a3e699cdf /internal/event
parentb421b2232351049277ee4ad5b31367bb2b6779bb (diff)
cleanup
Diffstat (limited to 'internal/event')
-rw-r--r--internal/event/event.go2
-rw-r--r--internal/event/pair.go23
2 files changed, 6 insertions, 19 deletions
diff --git a/internal/event/event.go b/internal/event/event.go
index 48bde48..c846e04 100644
--- a/internal/event/event.go
+++ b/internal/event/event.go
@@ -7,7 +7,7 @@ import (
)
var poolOfEventPairs = sync.Pool{
- New: func() interface{} { return &Pair{} },
+ New: func() any { return &Pair{} },
}
// Event is the common contract implemented by decoded syscall trace events.
diff --git a/internal/event/pair.go b/internal/event/pair.go
index 3eb8a16..4d3f342 100644
--- a/internal/event/pair.go
+++ b/internal/event/pair.go
@@ -25,20 +25,13 @@ type Pair struct {
Comm string
Duration uint64
DurationToPrev uint64
- Bytes uint64 // Number of bytes transferred (read/write/transfer syscalls only)
- Equals bool
+ Bytes uint64 // Number of bytes transferred (read/write/transfer syscalls only)
}
func NewPair(enterEv Event) *Pair {
e := poolOfEventPairs.Get().(*Pair)
- e.EnterEv = enterEv
- e.ExitEv = nil
- e.File = nil
- e.Comm = ""
- e.Duration = 0
- e.DurationToPrev = 0
- e.Bytes = 0
- e.Equals = false
+ // Zero all fields via struct literal to prevent stale data from previous pool reuse.
+ *e = Pair{EnterEv: enterEv}
return e
}
@@ -126,13 +119,7 @@ func (e *Pair) Recycle() {
if e.ExitEv != nil {
e.ExitEv.Recycle()
}
- e.EnterEv = nil
- e.ExitEv = nil
- e.File = nil
- e.Comm = ""
- e.Duration = 0
- e.DurationToPrev = 0
- e.Bytes = 0
- e.Equals = false
+ // Zero all fields via struct literal to prevent stale data on pool reuse.
+ *e = Pair{}
poolOfEventPairs.Put(e)
}