Removed undocumented stop() method from hub it's the same as abort(True). Fixed pyevent test failures and broken import that I somehow earlier missed.
This commit is contained in:
@@ -114,11 +114,6 @@ class BaseHub(object):
|
||||
self.secondaries[READ].pop(fileno, None)
|
||||
self.secondaries[WRITE].pop(fileno, None)
|
||||
|
||||
def stop(self):
|
||||
self.abort()
|
||||
if self.greenlet is not greenlet.getcurrent():
|
||||
self.switch()
|
||||
|
||||
def switch(self):
|
||||
cur = greenlet.getcurrent()
|
||||
assert cur is not self.greenlet, 'Cannot switch to MAINLOOP from MAINLOOP'
|
||||
@@ -202,6 +197,7 @@ class BaseHub(object):
|
||||
if self.running:
|
||||
self.stopping = True
|
||||
if wait:
|
||||
assert self.greenlet is not greenlet.getcurrent(), "Can't abort with wait from inside the hub's greenlet."
|
||||
# schedule an immediate timer just so the hub doesn't sleep
|
||||
self.schedule_call_global(0, lambda: None)
|
||||
# switch to it; when done the hub will switch back to its parent,
|
||||
|
@@ -84,8 +84,11 @@ class Hub(BaseHub):
|
||||
else:
|
||||
self.squelch_timer_exception(None, sys.exc_info())
|
||||
|
||||
def abort(self):
|
||||
def abort(self, wait=True):
|
||||
self.schedule_call_global(0, self.greenlet.throw, greenlet.GreenletExit)
|
||||
if wait:
|
||||
assert self.greenlet is not greenlet.getcurrent(), "Can't abort with wait from inside the hub's greenlet."
|
||||
self.switch()
|
||||
|
||||
def _getrunning(self):
|
||||
return bool(self.greenlet)
|
||||
|
@@ -3,7 +3,7 @@ import errno
|
||||
from eventlet import wsgi
|
||||
from eventlet import pools
|
||||
import eventlet
|
||||
from eventlet.common import get_errno
|
||||
from eventlet.support import get_errno
|
||||
from eventlet.green import socket
|
||||
#from pprint import pformat
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from tests import LimitedTestCase, main
|
||||
from tests import LimitedTestCase, main, skip_with_pyevent
|
||||
import time
|
||||
import eventlet
|
||||
from eventlet import hubs
|
||||
@@ -8,7 +8,8 @@ DELAY = 0.001
|
||||
def noop():
|
||||
pass
|
||||
|
||||
class TestTimerCleanup(LimitedTestCase):
|
||||
class TestTimerCleanup(LimitedTestCase):
|
||||
@skip_with_pyevent
|
||||
def test_cancel_accumulated(self):
|
||||
hub = hubs.get_hub()
|
||||
stimers = hub.get_timers_count()
|
||||
@@ -24,7 +25,8 @@ class TestTimerCleanup(LimitedTestCase):
|
||||
# there should be fewer than 1000 new timers and canceled
|
||||
self.assert_less_than_equal(hub.get_timers_count(), stimers + 1000)
|
||||
self.assert_less_than_equal(hub.timers_canceled, 1000)
|
||||
|
||||
|
||||
@skip_with_pyevent
|
||||
def test_cancel_proportion(self):
|
||||
# if fewer than half the pending timers are canceled, it should
|
||||
# not clean them out
|
||||
|
Reference in New Issue
Block a user