Loading sjrpc/core/async.py +14 −4 Original line number Diff line number Diff line Loading @@ -76,7 +76,19 @@ class AsyncWatcher(object): >>> for msg in watcher.wait(timeout=60): >>> process(msg) ''' responses = [] return list(self.iter(timeout, max_wait)) def iter(self, timeout=None, max_wait=None): ''' Work like :meth:`AsyncWatcher.wait` but return an iterable, instead of a list object. .. note:: Responses are yielded by the iterable when they are received, so you can start the processing of response before receiving all. ''' while self.remains: try: dt, response = self._get_in_queue(timeout=timeout) Loading @@ -84,12 +96,10 @@ class AsyncWatcher(object): break if timeout is not None: timeout -= dt responses.append(response) self._expected_responses.remove(response['id']) yield response # Check for max_wait: if max_wait is not None: max_wait -= 1 if not max_wait: break return responses Loading
sjrpc/core/async.py +14 −4 Original line number Diff line number Diff line Loading @@ -76,7 +76,19 @@ class AsyncWatcher(object): >>> for msg in watcher.wait(timeout=60): >>> process(msg) ''' responses = [] return list(self.iter(timeout, max_wait)) def iter(self, timeout=None, max_wait=None): ''' Work like :meth:`AsyncWatcher.wait` but return an iterable, instead of a list object. .. note:: Responses are yielded by the iterable when they are received, so you can start the processing of response before receiving all. ''' while self.remains: try: dt, response = self._get_in_queue(timeout=timeout) Loading @@ -84,12 +96,10 @@ class AsyncWatcher(object): break if timeout is not None: timeout -= dt responses.append(response) self._expected_responses.remove(response['id']) yield response # Check for max_wait: if max_wait is not None: max_wait -= 1 if not max_wait: break return responses