'Return True if path has been modified since the last call. Can
raise OSError if the path does not exist.'

def __call__(self, path):

    path = realpath(path)
    with self.lock:
        self.last_query[path] = monotonic()
        self.expire_watches()
        if (path not in self.watches):
            self.watch(path)
            return True
        self.read(get_name=False)
        if (path not in self.modified):
            return True
        ans = self.modified[path]
        if ans:
            self.modified[path] = False
        return ans
