diff --git a/src/core.go b/src/core.go index 1c8182e..023f7be 100644 --- a/src/core.go +++ b/src/core.go @@ -188,7 +188,6 @@ func Run(opts *Options, revision string) { if opts.Sync { eventBox.Unwatch(EvtReadNew) eventBox.WaitFor(EvtReadFin) - eventBox.Unset(EvtReadNew) } // Go interactive @@ -210,6 +209,9 @@ func Run(opts *Options, revision string) { delay := true ticks++ eventBox.Wait(func(events *util.Events) { + if _, fin := (*events)[EvtReadFin]; fin { + delete(*events, EvtReadNew) + } for evt, value := range *events { switch evt { diff --git a/src/util/eventbox.go b/src/util/eventbox.go index acd9561..b710cf1 100644 --- a/src/util/eventbox.go +++ b/src/util/eventbox.go @@ -45,13 +45,6 @@ func (b *EventBox) Set(event EventType, value interface{}) { b.cond.L.Unlock() } -// Unset turns off the event type on the box -func (b *EventBox) Unset(event EventType) { - b.cond.L.Lock() - delete(b.events, event) - b.cond.L.Unlock() -} - // Clear clears the events // Unsynchronized; should be called within Wait routine func (events *Events) Clear() {