def addReader(self, reader):
        """
        Add a FileDescriptor for notification of data available to read.
        """
        try:
            self._add(reader, self._reads, self._writes, self._selectables,
                      EPOLLIN, EPOLLOUT)
        except IOError as e:
            if e.errno == errno.EPERM:
                # epoll(7) doesn't support certain file descriptors,
                # e.g. filesystem files, so for those we just poll
                # continuously:
                self._continuousPolling.addReader(reader)
            else:
                raise

        Add a FileDescriptor for notification of data available to read.
        
stackoverflow/venv/lib/python3.6/site-packages/twisted/internet/epollreactor.py