From c4ea3eed4f6b9b4b73634696318ba58601eb3d93 Mon Sep 17 00:00:00 2001 From: Ted Yu Date: Mon, 7 Oct 2019 08:58:38 -0700 Subject: [PATCH] Expose Shutdown func for EventBroadcaster Kubernetes-commit: 57d43e4946f352f075b219b0a2f35942b06cfeb9 --- tools/events/event_broadcaster.go | 4 ++++ tools/events/interfaces.go | 3 +++ tools/record/event.go | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/tools/events/event_broadcaster.go b/tools/events/event_broadcaster.go index 53b6aaa9..9d5afd9b 100644 --- a/tools/events/event_broadcaster.go +++ b/tools/events/event_broadcaster.go @@ -102,6 +102,10 @@ func newBroadcaster(sink EventSink, sleepDuration time.Duration, eventCache map[ } } +func (e *eventBroadcasterImpl) Shutdown() { + e.Broadcaster.Shutdown() +} + // refreshExistingEventSeries refresh events TTL func (e *eventBroadcasterImpl) refreshExistingEventSeries() { // TODO: Investigate whether lock contention won't be a problem diff --git a/tools/events/interfaces.go b/tools/events/interfaces.go index 2e6e2eae..4e39156b 100644 --- a/tools/events/interfaces.go +++ b/tools/events/interfaces.go @@ -54,6 +54,9 @@ type EventBroadcaster interface { // NOTE: events received on your eventHandler should be copied before being used. // TODO: figure out if this can be removed. StartEventWatcher(eventHandler func(event runtime.Object)) func() + + // Shutdown shuts down the broadcaster + Shutdown() } // EventSink knows how to store events (client-go implements it.) diff --git a/tools/record/event.go b/tools/record/event.go index 7bd1ef5e..6a0d4962 100644 --- a/tools/record/event.go +++ b/tools/record/event.go @@ -127,6 +127,9 @@ type EventBroadcaster interface { // NewRecorder returns an EventRecorder that can be used to send events to this EventBroadcaster // with the event source set to the given event source. NewRecorder(scheme *runtime.Scheme, source v1.EventSource) EventRecorder + + // Shutdown shuts down the broadcaster + Shutdown() } // Creates a new event broadcaster. @@ -169,6 +172,10 @@ func (eventBroadcaster *eventBroadcasterImpl) StartRecordingToSink(sink EventSin }) } +func (e *eventBroadcasterImpl) Shutdown() { + e.Broadcaster.Shutdown() +} + func recordToSink(sink EventSink, event *v1.Event, eventCorrelator *EventCorrelator, sleepDuration time.Duration) { // Make a copy before modification, because there could be multiple listeners. // Events are safe to copy like this.