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