veyron/runtimes/google/lib/follow: Refactor watcher api and implementation.
Previously, the watcher would send file modifications events on a channel. Now,
the watcher provides a Recv method that blocks until the file is modified.
This simplifies the watcher implementation:
1) we no longer spawn go routines that fill the events channel.
2) delegate watchers (i.e. fsnotify-based, fs.Stat-based, timed, etc.) implement
an interface, not a function type.
Change-Id: Ia6b27c53f4e1a7e123cd2e738ac621331d177b95
15 files changed