diff options
Diffstat (limited to 'internal/eventloop.go')
| -rw-r--r-- | internal/eventloop.go | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/internal/eventloop.go b/internal/eventloop.go index 169f20f..010b892 100644 --- a/internal/eventloop.go +++ b/internal/eventloop.go @@ -258,6 +258,14 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair) case *FdEvent: fd := ep.EnterEv.(*FdEvent).Fd + if file_, ok := e.files[fd]; ok { + ep.File = file_ + if ep.Is(SYS_ENTER_CLOSE) { + delete(e.files, fd) + } + } else { + ep.File = file.NewFdWithPid(fd, v.Pid) + } if ep.Is(SYS_ENTER_CLOSE_RANGE) { // close_range provides (first, last), but fd_event only carries the first // argument, so we approximate by closing all tracked fds >= first. @@ -270,14 +278,6 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair) } } } - if file_, ok := e.files[fd]; ok { - ep.File = file_ - if ep.Is(SYS_ENTER_CLOSE) { - delete(e.files, fd) - } - } else { - ep.File = file.NewFdWithPid(fd, v.Pid) - } ep.Comm = e.comm(ep.EnterEv.GetTid()) if !e.filter.eventPair(ep) { ep.Recycle() |
