Commit 09b62e90 authored by Denis Bilenko's avatar Denis Bilenko

rename "wait" argument to "block" for kill() and killall()

parent 6a6aa33d
......@@ -144,13 +144,13 @@ def _kill(greenlet, exception, waiter):
waiter.switch()
def kill(greenlet, exception=GreenletExit, wait=False, polling_period=1):
def kill(greenlet, exception=GreenletExit, block=False, polling_period=0.2):
"""Kill greenlet with exception (GreenletExit by default).
Wait for it to die if wait=True.
Wait for it to die if block is true.
"""
waiter = Waiter()
core.active_event(_kill, greenlet, exception, waiter)
if wait:
if block:
waiter.wait()
while not greenlet.dead:
sleep(polling_period)
......@@ -169,13 +169,13 @@ def _killall(greenlets, exception, waiter):
waiter.switch(diehards)
def killall(greenlets, exception=GreenletExit, wait=False, polling_period=1):
def killall(greenlets, exception=GreenletExit, block=False, polling_period=0.2):
"""Kill all the greenlets with exception (GreenletExit by default).
Wait for them to die if wait=True.
Wait for them to die if block is true.
"""
waiter = Waiter()
core.active_event(_killall, greenlets, exception, waiter)
if wait:
if block:
alive = waiter.wait()
while alive:
sleep(polling_period)
......
......@@ -589,10 +589,10 @@ class Proc(Source):
throw_args = (ProcExit, )
self.greenlet.throw(*throw_args)
def kill(self, exception=ProcExit, wait=False):
def kill(self, exception=ProcExit, block=False):
if not self.dead:
core.active_event(self.greenlet.throw, exception)
if wait:
if block:
try:
self.wait()
except:
......@@ -735,22 +735,22 @@ class ProcSet(object):
while self.procs:
waitall(self.procs, trap_errors=trap_errors)
def kill(self, p, exception=ProcExit, wait=False):
def kill(self, p, exception=ProcExit, block=False):
kill = p.kill
try:
self.procs.remove(p)
except KeyError:
return
self.dying.add(p)
return kill(exception=exception, wait=wait)
return kill(exception=exception, block=block)
def killall(self, exception=ProcExit, wait=False):
def killall(self, exception=ProcExit, block=False):
while self.procs or self.dying:
for p in self.procs:
core.active_event(p.throw, exception)
self.dying.update(self.procs)
self.procs.clear()
if not wait:
if not block:
break
if self.dying:
waitall(self.dying, trap_errors=True)
......
......@@ -65,12 +65,12 @@ class TestGreenIo(TestCase):
server = socket.tcp_listener(('0.0.0.0', 0))
server_greenlet = gevent.spawn(accept_close_early, server)
did_it_work(server)
gevent.kill(server_greenlet, wait=True)
gevent.kill(server_greenlet, block=True)
server = socket.tcp_listener(('0.0.0.0', 0))
server_greenlet = gevent.spawn(accept_close_late, server)
did_it_work(server)
gevent.kill(server_greenlet, wait=True)
gevent.kill(server_greenlet, block=True)
def test_del_closes_socket(self):
......
......@@ -41,7 +41,7 @@ class Test(greentest.TestCase):
g = gevent.spawn(test)
gevent.sleep(DELAY/2)
assert state == ['start'], state
gevent.kill(g, wait=True)
gevent.kill(g, block=True)
# will not get there, unless switching is explicitly scheduled by kill
assert state == ['start', 'except', 'finished'], state
......
......@@ -60,7 +60,7 @@ class TestEvent(greentest.TestCase):
assert result is X, 'Nobody sent anything to event2 yet it received %r' % (result, )
finally:
t.cancel()
gevent.kill(g, wait=True)
gevent.kill(g, block=True)
if __name__=='__main__':
......
......@@ -48,7 +48,7 @@ class Test(greentest.TestCase):
s.spawn(gevent.sleep, DELAY*2)
assert len(s)==2, s
start = time.time()
s.killall(wait=True)
s.killall(block=True)
assert not s, s
assert len(s)==0, s
delta = time.time() - start
......@@ -89,7 +89,17 @@ class Test(greentest.TestCase):
assert u1.shot_count == 1, u1.shot_count
assert u2.shot_count == 1, u2.shot_count
X = object()
assert X is gevent.with_timeout(DELAY, s.killall, wait=True, timeout_value=X)
assert X is gevent.with_timeout(DELAY, s.killall, block=True, timeout_value=X)
def test_killall_subclass(self):
p1 = Proc1.spawn(lambda : 1/0)
p2 = Proc1.spawn(lambda : gevent.sleep(10))
s = proc.ProcSet([p1, p2])
s.killall(block=True)
class Proc1(proc.Proc):
pass
if __name__=='__main__':
......
......@@ -143,7 +143,7 @@ class TestHttpd(TestCase):
socket.tcp_listener(('0.0.0.0', 12346)), self.site, max_size=128, log=self.logfile)
def tearDown(self):
gevent.kill(self.killer, wait=True)
gevent.kill(self.killer, block=True)
gevent.sleep(0) # XXX kill should be enough!
def test_001_server(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment