Remove redundant read event when --sync is used

This commit is contained in:
Junegunn Choi 2017-08-20 01:58:51 +09:00
parent c304fc4333
commit 87874bba88
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627
2 changed files with 11 additions and 0 deletions

View File

@ -188,6 +188,7 @@ func Run(opts *Options, revision string) {
if opts.Sync {
eventBox.Unwatch(EvtReadNew)
eventBox.WaitFor(EvtReadFin)
eventBox.Unset(EvtReadNew)
}
// Go interactive
@ -216,6 +217,9 @@ func Run(opts *Options, revision string) {
reading = reading && evt == EvtReadNew
snapshot, count := chunkList.Snapshot()
terminal.UpdateCount(count, !reading, value.(bool))
if opts.Sync {
terminal.UpdateList(PassMerger(&snapshot, opts.Tac))
}
matcher.Reset(snapshot, terminal.Input(), false, !reading, sort)
case EvtSearchNew:

View File

@ -45,6 +45,13 @@ 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() {