docs: def _disappeared(self, fd, path, **params):
          """
          Called when an open path is no longer acessible.  This will either
          move the path to pending (if the 'missing' param is set for the
          file), or fire an exception.
      """
          log = self._getparam('log', self._discard, **params)
  
          log.debug("Path %r removed or renamed, handling removal", path)
          self._close(fd)
          if self._mode == WF_POLLING and fd in self._poll_stat:
              del self._poll_stat[fd]
          if self._mode == WF_INOTIFYX and path in self._inx_inode:
              del self._inx_inode[path]
          del self.fds_open[fd]
          del self.paths_open[path]
          if self.paths[path]:
              try:
                  if self._add_file(path, **params):
                      log.debug("Path %r immediately reappeared, pending transition skipped", path)
                      return
              except Exception as e:
                  log.debug("Path %r reappearance check failed -- %s", path, e)
              log.debug("Path %r marked as pending", path)
              self.paths_pending[path] = True
          else:
              del self.paths[path]
              raise Exception("Path %r has been removed or renamed" % path)