Commit ac42de47 authored by Denis Bilenko's avatar Denis Bilenko

use active_event everywhere (spawn, kill, coros, proc) instead of timer(0, ...)

parent 03967466
......@@ -101,7 +101,7 @@ def backdoor_server(server, locals=None):
fl = conn.makeGreenFile("rw")
fl.newlines = '\n'
greenlet = SocketConsole(fl, (host, port), locals)
core.timer(0, greenlet.switch)
core.active_event(greenlet.switch)
except socket.error, e:
# Broken pipe means it was shutdown
if e[0] != 32:
......@@ -119,7 +119,7 @@ def backdoor((conn, addr), locals=None):
fl = conn.makeGreenFile("rw")
fl.newlines = '\n'
greenlet = SocketConsole(fl, (host, port), locals)
core.timer(0, greenlet.switch)
core.active_event(greenlet.switch)
if __name__ == '__main__':
......
......@@ -25,7 +25,7 @@ import collections
import time
import traceback
from gevent.core import timer
from gevent.core import active_event
from gevent.greenlet import get_hub, spawn, getcurrent, sleep
......@@ -187,7 +187,7 @@ class event(object):
exc = (exc, )
self._exc = exc
if self._waiters:
timer(0, self._do_send, self._result, self._exc, self._waiters.copy())
active_event(self._do_send, self._result, self._exc, self._waiters.copy())
def _do_send(self, result, exc, waiters):
while waiters:
......@@ -249,7 +249,7 @@ class Semaphore(object):
# `blocking' parameter is for consistency with BoundedSemaphore and is ignored
self.counter += 1
if self._waiters:
timer(0, self._do_acquire)
active_event(self._do_acquire)
return True
def _do_acquire(self):
......@@ -373,7 +373,7 @@ class Queue(object):
exc = (exc, )
self.items.append((result, exc))
if self._waiters and self._timer is None:
self._timer = timer(0, self._do_send)
self._timer = active_event(self._do_send)
def send_exception(self, *args):
# the arguments are the same as for greenlet.throw
......@@ -442,7 +442,7 @@ class Channel(object):
if getcurrent() is get_hub().greenlet:
self.items.append((result, exc))
if self._waiters and self._timer is None:
self._timer = timer(0, self._do_switch)
self._timer = active_event(self._do_switch)
else:
if self._waiters and self._senders:
sleep(0)
......@@ -450,7 +450,7 @@ class Channel(object):
# note that send() does not work well with timeouts. if your timeout fires
# after this point, the item will remain in the queue
if self._waiters and self._timer is None:
self._timer = timer(0, self._do_switch)
self._timer = active_event(self._do_switch)
if len(self.items) > self.max_size:
self._senders.add(getcurrent())
try:
......@@ -487,14 +487,14 @@ class Channel(object):
if self.items:
result, exc = self.items.popleft()
if len(self.items) <= self.max_size and self._timer is None:
self._timer = timer(0, self._do_switch)
self._timer = active_event(self._do_switch)
if exc is None:
return result
else:
getcurrent().throw(*exc)
else:
if self._senders and self._timer is None:
self._timer = timer(0, self._do_switch)
self._timer = active_event(self._do_switch)
self._waiters.add(getcurrent())
try:
result, exc = get_hub().switch()
......
......@@ -41,7 +41,7 @@ class TimeoutError(Exception):
def spawn(function, *args, **kwargs):
g = Greenlet(lambda : function(*args, **kwargs))
g.parent = get_hub().greenlet
core.timer(0, g.switch)
core.active_event(g.switch)
return g
......@@ -106,7 +106,7 @@ def kill(greenlet, exception=GreenletExit, wait=False, polling_period=1):
Wait for it to die if wait=True.
"""
waiter = Waiter()
core.timer(0, _kill, greenlet, exception, waiter)
core.active_event(_kill, greenlet, exception, waiter)
if wait:
waiter.wait()
while not greenlet.dead:
......@@ -131,7 +131,7 @@ def killall(greenlets, exception=GreenletExit, wait=False, polling_period=1):
Wait for them to die if wait=True.
"""
waiter = Waiter()
core.timer(0, _killall, greenlets, exception, waiter)
core.active_event(_killall, greenlets, exception, waiter)
if wait:
alive = waiter.wait()
while alive:
......
......@@ -228,7 +228,7 @@ def spawn_greenlet(function, *args):
"""
g = greenlet.Greenlet(function)
g.parent = greenlet.get_hub().greenlet
core.timer(0, g.switch, *args)
core.active_event(g.switch, *args)
return g
......@@ -397,7 +397,7 @@ class Source(object):
self._start_send()
def _start_send(self):
core.timer(0, self._do_send, self._value_links.items(), self._value_links)
core.active_event(self._do_send, self._value_links.items(), self._value_links)
def send_exception(self, *throw_args):
assert not self.ready(), "%s has been fired already" % self
......@@ -406,7 +406,7 @@ class Source(object):
self._start_send_exception()
def _start_send_exception(self):
core.timer(0, self._do_send, self._exception_links.items(), self._exception_links)
core.active_event(self._do_send, self._exception_links.items(), self._exception_links)
def _do_send(self, links, consult):
while links:
......@@ -418,7 +418,7 @@ class Source(object):
finally:
consult.pop(listener, None)
except:
core.timer(0, self._do_send, links, consult)
core.active_event(self._do_send, links, consult)
raise
def wait(self, timeout=None, exception=greenlet.TimeoutError):
......@@ -598,7 +598,7 @@ class Proc(Source):
if not self.dead:
if not throw_args:
throw_args = (ProcExit, )
core.timer(0, self.greenlet.throw, *throw_args)
core.active_event(self.greenlet.throw, *throw_args)
if greenlet.getcurrent() is not greenlet.get_hub().greenlet:
greenlet.sleep(0)
......
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