From 4bf3d011042cd3e5dc1848175121d39f07b78aee Mon Sep 17 00:00:00 2001 From: David Wilson Date: Fri, 25 May 2018 00:26:21 +0100 Subject: [PATCH] select: add missing get(block=..) parameter. --- docs/api.rst | 6 ++++-- mitogen/select.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/api.rst b/docs/api.rst index ecee398d..2580b11c 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -151,7 +151,7 @@ contexts. Result processing happens concurrently to new results arriving, so :py:meth:`all` should always be faster. - .. py:method:: get (timeout=None) + .. py:method:: get (timeout=None, block=True) Fetch the next available value from any receiver, or raise :py:class:`mitogen.core.TimeoutError` if no value is available within @@ -162,7 +162,9 @@ contexts. :param float timeout: Timeout in seconds. - + :param bool block: + If :py:data:`False`, immediately raise + :py:class:`mitogen.core.TimeoutError` if the select is empty. :return: :py:class:`mitogen.core.Message` :raises mitogen.core.TimeoutError: diff --git a/mitogen/select.py b/mitogen/select.py index d5c1b907..ce4023a9 100644 --- a/mitogen/select.py +++ b/mitogen/select.py @@ -113,12 +113,12 @@ class Select(object): empty_msg = 'Cannot get(), Select instance is empty' - def get(self, timeout=None): + def get(self, timeout=None, block=True): if not self._receivers: raise Error(self.empty_msg) while True: - recv = self._latch.get(timeout=timeout) + recv = self._latch.get(timeout=timeout, block=block) try: msg = recv.get(block=False) if self._oneshot: