def _noIntrWatchFd(self, fd, isEpoll, mask=select.POLLERR): if isEpoll: poller = select.epoll() pollInterval = self.SLEEP_INTERVAL * self.RETRIES * 2 else: poller = select.poll() pollInterval = self.SLEEP_INTERVAL * self.RETRIES * 2 * 1000 poller.register(fd, mask) misc.NoIntrPoll(poller.poll, pollInterval) poller.unregister(fd)
def testNoTimeoutPipePoll(self): def _sigChldAndClose(fd): self._waitAndSigchld() time.sleep(self.SLEEP_INTERVAL) os.close(fd) myPipe, hisPipe = os.pipe() poller = select.poll() poller.register(myPipe, select.POLLHUP) intrThread = threading.Thread(target=_sigChldAndClose, args=(hisPipe,)) intrThread.setDaemon(True) intrThread.start() try: self.assertTrue(len(misc.NoIntrPoll(poller.poll, -1)) > 0) finally: os.close(myPipe)