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): ...@@ -144,13 +144,13 @@ def _kill(greenlet, exception, waiter):
waiter.switch() 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). """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() waiter = Waiter()
core.active_event(_kill, greenlet, exception, waiter) core.active_event(_kill, greenlet, exception, waiter)
if wait: if block:
waiter.wait() waiter.wait()
while not greenlet.dead: while not greenlet.dead:
sleep(polling_period) sleep(polling_period)
...@@ -169,13 +169,13 @@ def _killall(greenlets, exception, waiter): ...@@ -169,13 +169,13 @@ def _killall(greenlets, exception, waiter):
waiter.switch(diehards) 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). """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() waiter = Waiter()
core.active_event(_killall, greenlets, exception, waiter) core.active_event(_killall, greenlets, exception, waiter)
if wait: if block:
alive = waiter.wait() alive = waiter.wait()
while alive: while alive:
sleep(polling_period) sleep(polling_period)
......
...@@ -589,10 +589,10 @@ class Proc(Source): ...@@ -589,10 +589,10 @@ class Proc(Source):
throw_args = (ProcExit, ) throw_args = (ProcExit, )
self.greenlet.throw(*throw_args) self.greenlet.throw(*throw_args)
def kill(self, exception=ProcExit, wait=False): def kill(self, exception=ProcExit, block=False):
if not self.dead: if not self.dead:
core.active_event(self.greenlet.throw, exception) core.active_event(self.greenlet.throw, exception)
if wait: if block:
try: try:
self.wait() self.wait()
except: except:
...@@ -735,22 +735,22 @@ class ProcSet(object): ...@@ -735,22 +735,22 @@ class ProcSet(object):
while self.procs: while self.procs:
waitall(self.procs, trap_errors=trap_errors) 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 kill = p.kill
try: try:
self.procs.remove(p) self.procs.remove(p)
except KeyError: except KeyError:
return return
self.dying.add(p) 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: while self.procs or self.dying:
for p in self.procs: for p in self.procs:
core.active_event(p.throw, exception) core.active_event(p.throw, exception)
self.dying.update(self.procs) self.dying.update(self.procs)
self.procs.clear() self.procs.clear()
if not wait: if not block:
break break
if self.dying: if self.dying:
waitall(self.dying, trap_errors=True) waitall(self.dying, trap_errors=True)
......
...@@ -65,12 +65,12 @@ class TestGreenIo(TestCase): ...@@ -65,12 +65,12 @@ class TestGreenIo(TestCase):
server = socket.tcp_listener(('0.0.0.0', 0)) server = socket.tcp_listener(('0.0.0.0', 0))
server_greenlet = gevent.spawn(accept_close_early, server) server_greenlet = gevent.spawn(accept_close_early, server)
did_it_work(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 = socket.tcp_listener(('0.0.0.0', 0))
server_greenlet = gevent.spawn(accept_close_late, server) server_greenlet = gevent.spawn(accept_close_late, server)
did_it_work(server) did_it_work(server)
gevent.kill(server_greenlet, wait=True) gevent.kill(server_greenlet, block=True)
def test_del_closes_socket(self): def test_del_closes_socket(self):
......
...@@ -41,7 +41,7 @@ class Test(greentest.TestCase): ...@@ -41,7 +41,7 @@ class Test(greentest.TestCase):
g = gevent.spawn(test) g = gevent.spawn(test)
gevent.sleep(DELAY/2) gevent.sleep(DELAY/2)
assert state == ['start'], state 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 # will not get there, unless switching is explicitly scheduled by kill
assert state == ['start', 'except', 'finished'], state assert state == ['start', 'except', 'finished'], state
......
...@@ -60,7 +60,7 @@ class TestEvent(greentest.TestCase): ...@@ -60,7 +60,7 @@ class TestEvent(greentest.TestCase):
assert result is X, 'Nobody sent anything to event2 yet it received %r' % (result, ) assert result is X, 'Nobody sent anything to event2 yet it received %r' % (result, )
finally: finally:
t.cancel() t.cancel()
gevent.kill(g, wait=True) gevent.kill(g, block=True)
if __name__=='__main__': if __name__=='__main__':
......
...@@ -48,7 +48,7 @@ class Test(greentest.TestCase): ...@@ -48,7 +48,7 @@ class Test(greentest.TestCase):
s.spawn(gevent.sleep, DELAY*2) s.spawn(gevent.sleep, DELAY*2)
assert len(s)==2, s assert len(s)==2, s
start = time.time() start = time.time()
s.killall(wait=True) s.killall(block=True)
assert not s, s assert not s, s
assert len(s)==0, s assert len(s)==0, s
delta = time.time() - start delta = time.time() - start
...@@ -89,7 +89,17 @@ class Test(greentest.TestCase): ...@@ -89,7 +89,17 @@ class Test(greentest.TestCase):
assert u1.shot_count == 1, u1.shot_count assert u1.shot_count == 1, u1.shot_count
assert u2.shot_count == 1, u2.shot_count assert u2.shot_count == 1, u2.shot_count
X = object() 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__': if __name__=='__main__':
......
...@@ -143,7 +143,7 @@ class TestHttpd(TestCase): ...@@ -143,7 +143,7 @@ class TestHttpd(TestCase):
socket.tcp_listener(('0.0.0.0', 12346)), self.site, max_size=128, log=self.logfile) socket.tcp_listener(('0.0.0.0', 12346)), self.site, max_size=128, log=self.logfile)
def tearDown(self): def tearDown(self):
gevent.kill(self.killer, wait=True) gevent.kill(self.killer, block=True)
gevent.sleep(0) # XXX kill should be enough! gevent.sleep(0) # XXX kill should be enough!
def test_001_server(self): 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