def METHOD_NAME(self):
    ls = []
    for name in self.filelist:
        absname = os.path.realpath(os.path.join(name))
        try:
            st = os.stat(absname)
        except EnvironmentError as err:
            if err.errno != errno.ENOENT:
                raise
        else:
            if not stat.S_ISREG(st.st_mode):
                continue
            fid = self.get_file_id(st)
            ls.append((fid, absname))
    # check existent files
    for fid, file in list(iter(self.files_map.items())):
        # next(iter(graph.items()))
        try:
            st = os.stat(file.name)
        except EnvironmentError as err:
            if err.errno == errno.ENOENT:
                self.unwatch(file, fid)
            else:
                raise
        else:
            if fid != self.get_file_id(st):
                # same name but different file (rotation); reload it.
                self.unwatch(file, fid)
                self.watch(file.name)
    # add new ones
    for fid, fname in ls:
        if fid not in self.files_map:
            self.watch(fname)