diff options
Diffstat (limited to 'bgproc.py')
-rw-r--r-- | bgproc.py | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -19,11 +19,15 @@ class BackgroundProcessing(object): '''Manage background processing queues.''' def __init__(self, func): + self.func = func self.pending_requests = 0 + self.requests = [] + self.results = [] def enqueue_request(self, request): '''Put a request into queue, to be processed by workers whenever.''' self.pending_requests += 1 + self.requests.append(request) def close_requests(self): '''Signal workers that they can retire. @@ -43,9 +47,12 @@ class BackgroundProcessing(object): because all requests have been processed. ''' - return False + for request in self.requests: + self.results.append(self.func(request)) + return len(self.results) > 0 def __iter__(self): '''Iterate over immediately available results.''' - if False: - yield + for result in self.results: + yield result + |