fixed twistedhub not to use [renamed] support.greenlet module

This commit is contained in:
Denis Bilenko
2009-01-13 01:10:06 +06:00
parent 67021d4b70
commit f5654b311c

View File

@@ -22,7 +22,7 @@
import sys
import threading
from twisted.internet.base import DelayedCall as TwistedDelayedCall
from eventlet.support.greenlet import greenlet
from eventlet import api
class DelayedCall(TwistedDelayedCall):
@@ -37,7 +37,7 @@ class DelayedCall(TwistedDelayedCall):
class LocalDelayedCall(DelayedCall):
def __init__(self, *args, **kwargs):
self.greenlet = greenlet.getcurrent()
self.greenlet = api.getcurrent()
DelayedCall.__init__(self, *args, **kwargs)
def _get_cancelled(self):
@@ -109,9 +109,9 @@ class BaseTwistedHub(object):
self.waiters_by_greenlet = {}
def switch(self):
assert greenlet.getcurrent() is not self.greenlet, 'Impossible to switch() from the mainloop greenlet'
assert api.getcurrent() is not self.greenlet, 'Impossible to switch() from the mainloop greenlet'
try:
greenlet.getcurrent().parent = self.greenlet
api.getcurrent().parent = self.greenlet
except ValueError, ex:
pass
return self.greenlet.switch()
@@ -128,14 +128,14 @@ class BaseTwistedHub(object):
if write:
reactor.addWriter(descriptor)
# XXX exc will not work if no read nor write
self.waiters_by_greenlet[greenlet.getcurrent()] = descriptor
self.waiters_by_greenlet[api.getcurrent()] = descriptor
return descriptor
def remove_descriptor(self, descriptor):
from twisted.internet import reactor
reactor.removeReader(descriptor)
reactor.removeWriter(descriptor)
self.waiters_by_greenlet.pop(greenlet.getcurrent(), None)
self.waiters_by_greenlet.pop(api.getcurrent(), None)
def exc_greenlet(self, gr, *throw_args):
fileno = self.waiters_by_greenlet.pop(gr, None)
@@ -213,16 +213,16 @@ class TwistedHub(BaseTwistedHub):
assert Hub.state==0, ('%s hub can only be instantiated once' % type(self).__name__, Hub.state)
Hub.state = 1
make_twisted_threadpool_daemonic() # otherwise the program would hang after the main greenlet exited
g = greenlet(self.run)
g = api.Greenlet(self.run)
BaseTwistedHub.__init__(self, g)
def switch(self):
if self.greenlet.dead:
self.greenlet = greenlet(self.run)
self.greenlet = api.Greenlet(self.run)
try:
greenlet.getcurrent().parent = self.greenlet
api.getcurrent().parent = self.greenlet
except ValueError, ex:
pass
pass
return self.greenlet.switch()
def run(self, installSignalHandlers=None):