MCPcopy Create free account
hub / github.com/rabbitstack/fibratus / push

Method push

pkg/event/queue.go:128–151  ·  view source on GitHub ↗
(e *Event)

Source from the content-addressed store, hash-verified

126}
127
128func (q *Queue) push(e *Event) error {
129 var enqueue bool
130 if q.enqueueAlways {
131 enqueue = true
132 }
133 for _, listener := range q.listeners {
134 enq, err := listener.ProcessEvent(e)
135 if err != nil {
136 return err
137 }
138 if listener.CanEnqueue() && enq {
139 enqueue = true
140 }
141 }
142 if q.stackEnrichment && e.IsTerminateThread() {
143 id := uint64(e.Params.MustGetPid() + e.Params.MustGetTid())
144 q.decorator.RemoveBucket(id)
145 }
146 if enqueue || len(q.listeners) == 0 {
147 q.q <- e
148 eventsEnqueued.Add(1)
149 }
150 return nil
151}

Callers 3

PushMethod · 0.95
PopMethod · 0.80
flushMethod · 0.80

Calls 7

IsTerminateThreadMethod · 0.80
MustGetPidMethod · 0.80
MustGetTidMethod · 0.80
RemoveBucketMethod · 0.80
ProcessEventMethod · 0.65
CanEnqueueMethod · 0.65
AddMethod · 0.65

Tested by

no test coverage detected