X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2c10049e10195f88b1eefec26f70f5019d316cc8..10c60652633e62cf120102f36b9354c7d330147c:/e2reactor.py diff --git a/e2reactor.py b/e2reactor.py index 1ecd40e8..7caeb7f1 100644 --- a/e2reactor.py +++ b/e2reactor.py @@ -35,7 +35,8 @@ class E2SharedPoll: del self.dict[fd] def poll(self, timeout = None): - return getApplication().poll(timeout, self.dict) + r = getApplication().poll(timeout, self.dict) + return r poller = E2SharedPoll() @@ -56,6 +57,8 @@ class PollReactor(posixbase.PosixReactorBase): poller.register(fd, mask) else: if selectables.has_key(fd): del selectables[fd] + + getApplication().interruptPoll() def _dictRemove(self, selectable, mdict): try: @@ -131,6 +134,7 @@ class PollReactor(posixbase.PosixReactorBase): POLLIN=select.POLLIN, POLLOUT=select.POLLOUT): """Poll the poller for new events.""" + if timeout is not None: timeout = int(timeout * 1000) # convert seconds to milliseconds @@ -183,6 +187,9 @@ class PollReactor(posixbase.PosixReactorBase): if why: self._disconnectSelectable(selectable, why, inRead) + def callLater(self, *args, **kwargs): + getApplication().interruptPoll() + return posixbase.PosixReactorBase.callLater(self, *args, **kwargs) def install(): """Install the poll() reactor."""