summaryrefslogtreecommitdiff
path: root/internal/eventloop_exit.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/eventloop_exit.go')
-rw-r--r--internal/eventloop_exit.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/eventloop_exit.go b/internal/eventloop_exit.go
index 7e26cb0..7a69774 100644
--- a/internal/eventloop_exit.go
+++ b/internal/eventloop_exit.go
@@ -42,6 +42,8 @@ func (e *eventLoop) handleTracepointExit(ep *event.Pair) bool {
return e.handlePollExit(ep, ev)
case *types.MemEvent:
return e.handleMemExit(ep, ev)
+ case *types.SleepEvent:
+ return e.handleSleepExit(ep, ev)
case *types.NullEvent:
return e.handleNullExit(ep, ev)
case *types.FcntlEvent:
@@ -417,6 +419,15 @@ func (e *eventLoop) handleMemExit(ep *event.Pair, memEv *types.MemEvent) bool {
return true
}
+func (e *eventLoop) handleSleepExit(ep *event.Pair, sleepEv *types.SleepEvent) bool {
+ ep.Comm = e.comm(sleepEv.GetTid())
+ if !e.Filter().MatchPair(ep) {
+ ep.Recycle()
+ return false
+ }
+ return true
+}
+
func pipeDescriptorName(flags, fd0, fd1 int32) string {
return fmt.Sprintf("pipe:%d:%d:%d", flags, fd0, fd1)
}
@@ -544,6 +555,17 @@ func applyAddressSpaceBytes(ep *event.Pair) {
ep.AddressSpaceBytes = addressSpaceBytesFromMem(memEv)
}
+func applyRequestedSleepNs(ep *event.Pair) {
+ if ep == nil {
+ return
+ }
+ sleepEv, ok := ep.EnterEv.(*types.SleepEvent)
+ if !ok {
+ return
+ }
+ ep.RequestedSleepNs = sleepEv.RequestedNs
+}
+
// dropMalformedRawEvent records a warning when a raw BPF event cannot be
// decoded, keeping the error visible without crashing the event loop.
func (e *eventLoop) dropMalformedRawEvent(evType types.EventType, raw []byte) {