summaryrefslogtreecommitdiff
path: root/bgproc.py
diff options
context:
space:
mode:
Diffstat (limited to 'bgproc.py')
-rw-r--r--bgproc.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/bgproc.py b/bgproc.py
index 4c3ead8..949fb63 100644
--- a/bgproc.py
+++ b/bgproc.py
@@ -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
+