diff options
Diffstat (limited to 'internal/eventloop_exit.go')
| -rw-r--r-- | internal/eventloop_exit.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/eventloop_exit.go b/internal/eventloop_exit.go index 345424c..1fd6746 100644 --- a/internal/eventloop_exit.go +++ b/internal/eventloop_exit.go @@ -36,6 +36,8 @@ func (e *eventLoop) handleTracepointExit(ep *event.Pair) bool { return e.handlePipeExit(ep, ev) case *types.EventfdEvent: return e.handleEventfdExit(ep, ev) + case *types.EpollCtlEvent: + return e.handleEpollCtlExit(ep, ev) case *types.NullEvent: return e.handleNullExit(ep, ev) case *types.FcntlEvent: @@ -383,6 +385,16 @@ func (e *eventLoop) handleEventfdExit(ep *event.Pair, eventfdEv *types.EventfdEv return true } +func (e *eventLoop) handleEpollCtlExit(ep *event.Pair, epollCtlEv *types.EpollCtlEvent) bool { + ep.File = e.fdState().resolve(epollCtlEv.Epfd, epollCtlEv.Pid) + ep.Comm = e.comm(epollCtlEv.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) } |
