File tree Expand file tree Collapse file tree 1 file changed +9
-0
lines changed
Expand file tree Collapse file tree 1 file changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -90,6 +90,8 @@ type EventSource struct {
9090
9191 filter filter.Filter
9292 listeners []kevent.Listener
93+
94+ isClosed bool
9395}
9496
9597// NewEventSource creates the new ETW event source.
@@ -251,11 +253,16 @@ func (e *EventSource) Open(config *config.Config) error {
251253// signal the event callback to stop consuming more events.
252254// Finally, the trace is stopped along with all event consumers.
253255func (e * EventSource ) Close () error {
256+ if e .isClosed {
257+ return nil
258+ }
259+
254260 for _ , consumer := range e .consumers {
255261 if err := consumer .Close (); err != nil {
256262 log .Warnf ("couldn't close consumer: %v" , err )
257263 }
258264 }
265+
259266 for _ , trace := range e .traces {
260267 if ! trace .IsStarted () {
261268 continue
@@ -275,6 +282,8 @@ func (e *EventSource) Close() error {
275282
276283 close (e .stop )
277284
285+ e .isClosed = true
286+
278287 return e .sequencer .Shutdown ()
279288}
280289
You can’t perform that action at this time.
0 commit comments