Skip to content

Instantly share code, notes, and snippets.

@whitmo
Created September 2, 2014 18:01
Show Gist options
  • Save whitmo/abab63f4801be4bf0fe2 to your computer and use it in GitHub Desktop.
Save whitmo/abab63f4801be4bf0fe2 to your computer and use it in GitHub Desktop.
class Waiter(list):
def __init__(self):
self.greenlets = []
def spawn(self, func, *args, **kw):
g = gevent.spawn(func, *args, **kw)
self.greenlets.append(g)
@property
def results(self):
for greenlet in self.greenlets:
status = greenlet.successful()
yield status, greenlet.value
def __enter__(self):
return self
def __exit__(self, *args):
if any(args):
raise
gevent.wait(self.greenlets)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment