diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-05-21 15:32:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-21 15:32:07 +0200 |
commit | a594de2cf457a1a5e5fecd8329853e9ec19c5582 (patch) | |
tree | b0e6f8f6cad5468b930d03491f1516ff1680b581 /vendor/github.com/nxadm/tail/watch/filechanges.go | |
parent | 72e880351a88ae54b69046ab14a9a4a52c51c78b (diff) | |
parent | cdd1f2bbaf99f5fae8f5c08a25bccdf478cd9ada (diff) | |
download | podman-a594de2cf457a1a5e5fecd8329853e9ec19c5582.tar.gz podman-a594de2cf457a1a5e5fecd8329853e9ec19c5582.tar.bz2 podman-a594de2cf457a1a5e5fecd8329853e9ec19c5582.zip |
Merge pull request #6317 from containers/dependabot/go_modules/github.com/onsi/gomega-1.10.1
Bump github.com/onsi/gomega from 1.10.0 to 1.10.1
Diffstat (limited to 'vendor/github.com/nxadm/tail/watch/filechanges.go')
-rw-r--r-- | vendor/github.com/nxadm/tail/watch/filechanges.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/github.com/nxadm/tail/watch/filechanges.go b/vendor/github.com/nxadm/tail/watch/filechanges.go new file mode 100644 index 000000000..f80aead9a --- /dev/null +++ b/vendor/github.com/nxadm/tail/watch/filechanges.go @@ -0,0 +1,36 @@ +package watch + +type FileChanges struct { + Modified chan bool // Channel to get notified of modifications + Truncated chan bool // Channel to get notified of truncations + Deleted chan bool // Channel to get notified of deletions/renames +} + +func NewFileChanges() *FileChanges { + return &FileChanges{ + make(chan bool, 1), make(chan bool, 1), make(chan bool, 1)} +} + +func (fc *FileChanges) NotifyModified() { + sendOnlyIfEmpty(fc.Modified) +} + +func (fc *FileChanges) NotifyTruncated() { + sendOnlyIfEmpty(fc.Truncated) +} + +func (fc *FileChanges) NotifyDeleted() { + sendOnlyIfEmpty(fc.Deleted) +} + +// sendOnlyIfEmpty sends on a bool channel only if the channel has no +// backlog to be read by other goroutines. This concurrency pattern +// can be used to notify other goroutines if and only if they are +// looking for it (i.e., subsequent notifications can be compressed +// into one). +func sendOnlyIfEmpty(ch chan bool) { + select { + case ch <- true: + default: + } +} |