replace uses of eventlet.api (plus misc ws/linelen/pyflakes cleanup)
This commit is contained in:
@@ -74,8 +74,8 @@ class socket_rwdescriptor(FdListener):
|
|||||||
# to the mainloop occurs, twisted will not re-evaluate the delayed calls
|
# to the mainloop occurs, twisted will not re-evaluate the delayed calls
|
||||||
# because it assumes that none were scheduled since no client code was executed
|
# because it assumes that none were scheduled since no client code was executed
|
||||||
# (it has no idea it was switched away). So, we restart the mainloop.
|
# (it has no idea it was switched away). So, we restart the mainloop.
|
||||||
# XXX this is not enough, pollreactor prints the traceback for this and epollreactor
|
# XXX this is not enough, pollreactor prints the traceback for
|
||||||
# times out. see test__hub.TestCloseSocketWhilePolling
|
# this and epollreactor times out. see test__hub.TestCloseSocketWhilePolling
|
||||||
raise greenlet.GreenletExit
|
raise greenlet.GreenletExit
|
||||||
|
|
||||||
logstr = "twistedr"
|
logstr = "twistedr"
|
||||||
@@ -103,9 +103,10 @@ class BaseTwistedHub(object):
|
|||||||
self.greenlet = mainloop_greenlet
|
self.greenlet = mainloop_greenlet
|
||||||
|
|
||||||
def switch(self):
|
def switch(self):
|
||||||
assert api.getcurrent() is not self.greenlet, "Cannot switch from MAINLOOP to MAINLOOP"
|
assert getcurrent() is not self.greenlet, \
|
||||||
|
"Cannot switch from MAINLOOP to MAINLOOP"
|
||||||
try:
|
try:
|
||||||
api.getcurrent().parent = self.greenlet
|
getcurrent().parent = self.greenlet
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
return self.greenlet.switch()
|
return self.greenlet.switch()
|
||||||
@@ -134,7 +135,8 @@ class BaseTwistedHub(object):
|
|||||||
if timer.greenlet.dead:
|
if timer.greenlet.dead:
|
||||||
return
|
return
|
||||||
return func(*args1, **kwargs1)
|
return func(*args1, **kwargs1)
|
||||||
timer = callLater(LocalDelayedCall, reactor, seconds, call_if_greenlet_alive, *args, **kwargs)
|
timer = callLater(LocalDelayedCall, reactor, seconds,
|
||||||
|
call_if_greenlet_alive, *args, **kwargs)
|
||||||
return timer
|
return timer
|
||||||
|
|
||||||
schedule_call = schedule_call_local
|
schedule_call = schedule_call_local
|
||||||
@@ -189,18 +191,22 @@ class TwistedHub(BaseTwistedHub):
|
|||||||
installSignalHandlers = False
|
installSignalHandlers = False
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
assert Hub.state==0, ('%s hub can only be instantiated once' % type(self).__name__, Hub.state)
|
assert Hub.state==0, ('%s hub can only be instantiated once'%type(self).__name__,
|
||||||
|
Hub.state)
|
||||||
Hub.state = 1
|
Hub.state = 1
|
||||||
make_twisted_threadpool_daemonic() # otherwise the program would hang after the main greenlet exited
|
make_twisted_threadpool_daemonic() # otherwise the program
|
||||||
g = api.Greenlet(self.run)
|
# would hang after the main
|
||||||
|
# greenlet exited
|
||||||
|
g = greenlet.greenlet(self.run)
|
||||||
BaseTwistedHub.__init__(self, g)
|
BaseTwistedHub.__init__(self, g)
|
||||||
|
|
||||||
def switch(self):
|
def switch(self):
|
||||||
assert api.getcurrent() is not self.greenlet, "Cannot switch from MAINLOOP to MAINLOOP"
|
assert getcurrent() is not self.greenlet, \
|
||||||
|
"Cannot switch from MAINLOOP to MAINLOOP"
|
||||||
if self.greenlet.dead:
|
if self.greenlet.dead:
|
||||||
self.greenlet = api.Greenlet(self.run)
|
self.greenlet = greenlet.greenlet(self.run)
|
||||||
try:
|
try:
|
||||||
api.getcurrent().parent = self.greenlet
|
getcurrent().parent = self.greenlet
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
return self.greenlet.switch()
|
return self.greenlet.switch()
|
||||||
@@ -255,5 +261,3 @@ def make_twisted_threadpool_daemonic():
|
|||||||
from twisted.python.threadpool import ThreadPool
|
from twisted.python.threadpool import ThreadPool
|
||||||
if ThreadPool.threadFactory != DaemonicThread:
|
if ThreadPool.threadFactory != DaemonicThread:
|
||||||
ThreadPool.threadFactory = DaemonicThread
|
ThreadPool.threadFactory = DaemonicThread
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user