closes reliable without interruption
closes reliable without interruption

the readEvents go routine runs when watches were added and stops if nothing is watched.
an atomic state is used instead of a isClosed flag and the done channel.
should be even safer for concurrent use now.

somia/inotify