added get_timers_count() functions to hubs (for debugging). removed some dead or useless code from twistedr.py

This commit is contained in:
Denis Bilenko
2008-11-17 13:12:58 +06:00
parent b3a08342f0
commit 3e52022980
2 changed files with 16 additions and 45 deletions

View File

@@ -321,6 +321,8 @@ class BaseHub(object):
except KeyError:
pass
# for debugging:
def get_readers(self):
return self.readers
@@ -330,3 +332,6 @@ class BaseHub(object):
def get_excs(self):
return self.excs
def get_timers_count(hub):
return max(len(x) for x in [hub.timers, hub.timers_by_greenlet.items(), hub.next_timers])

View File

@@ -6,7 +6,6 @@ from eventlet.hubs.hub import _g_debug
from eventlet import greenlib
from eventlet.support.greenlet import greenlet
from functools import wraps
import traceback
@@ -85,11 +84,6 @@ class BaseTwistedHub(object):
from twisted.internet import reactor
reactor.stop()
def sleep(self, seconds=0):
from twisted.internet import reactor
d = reactor.callLater(seconds, greenlib.switch, greenlet.getcurrent())
self.switch()
def add_descriptor(self, fileno, read=None, write=None, exc=None):
from twisted.internet import reactor
descriptor = socket_rwdescriptor(fileno, read, write, exc)
@@ -119,8 +113,8 @@ class BaseTwistedHub(object):
def schedule_call(self, seconds, func, *args, **kwargs):
from twisted.internet import reactor
@wraps(func)
def wrap(*args, **kwargs):
def call_func_finish_time(*args, **kwargs):
try:
return func(*args, **kwargs)
finally:
@@ -187,7 +181,12 @@ class BaseTwistedHub(object):
from twisted.internet import reactor
reactor.crash()
# for test cases:
@property
def running(self):
from twisted.internet import reactor
return reactor.running
# for debugging:
def get_readers(self):
from twisted.internet import reactor
@@ -202,10 +201,10 @@ class BaseTwistedHub(object):
def get_excs(self):
return []
@property
def running(self):
def get_timers_count(self):
from twisted.internet import reactor
return reactor.running
return len(reactor.getDelayedCalls())
class TwistedHub(BaseTwistedHub):
@@ -284,39 +283,6 @@ class TwistedHub(BaseTwistedHub):
t = reactor.running and t2
reactor.doIteration(t)
def running_greenlets(self):
res = []
for g in greenlib.tracked_greenlets():
if g is self.greenlet:
continue
if hasattr(self.greenlet, 'parent') and g is self.greenlet.parent:
continue
res.append(g)
def join(self, lst, timeout=None):
"""Wait for other greenlets to finish"""
waiting = [1]
# if timeout is not None and self.running_greenlets():
# def stop():
# waiting[0] = 0
# self.schedule_call(timeout, stop)
while True:
print 'WHILE!'
lst = [x for x in lst if not x.dead]
print 'WHILE!', lst
if not lst:
break # XXX collect return values
print 'WHILE! - before switch', lst[0], lst[0].parent
print 'WHILE! - before switch', greenlet.getcurrent(), greenlet.getcurrent().parent
print 'WHILE! - before switch', self.greenlet, getattr(self.greenlet, 'parent', '-')
for x in lst:
x.parent = greenlet.getcurrent()
print 'AWHILE! - before switch', lst[0], lst[0].parent
print 'AWHILE! - before switch', greenlet.getcurrent(), greenlet.getcurrent().parent
print 'AWHILE! - before switch', self.greenlet, getattr(self.greenlet, 'parent', '-')
res = self.switch()
print 'res=%r' % res
Hub = TwistedHub
class DaemonicThread(threading.Thread):