Adding exc_clear to hub.switch, since things don't like it when exceptions from other coroutines get up in their thing.
This commit is contained in:
@@ -100,7 +100,7 @@ class BaseHub(object):
|
|||||||
try:
|
try:
|
||||||
switch_out()
|
switch_out()
|
||||||
except:
|
except:
|
||||||
traceback.print_exception(*sys.exc_info())
|
self.squelch_generic_exception(sys.exc_info())
|
||||||
if self.greenlet.dead:
|
if self.greenlet.dead:
|
||||||
self.greenlet = greenlet.greenlet(self.run)
|
self.greenlet = greenlet.greenlet(self.run)
|
||||||
try:
|
try:
|
||||||
@@ -109,6 +109,7 @@ class BaseHub(object):
|
|||||||
current.parent = self.greenlet
|
current.parent = self.greenlet
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass # gets raised if there is a greenlet parent cycle
|
pass # gets raised if there is a greenlet parent cycle
|
||||||
|
sys.exc_clear()
|
||||||
return self.greenlet.switch()
|
return self.greenlet.switch()
|
||||||
|
|
||||||
def squelch_exception(self, fileno, exc_info):
|
def squelch_exception(self, fileno, exc_info):
|
||||||
|
Reference in New Issue
Block a user