Rev966, New Greenlet debug hook to support Gevent 1.1.0, Publish to 8 peers on external publish request, Dont try to download banned user files, Check user files even if its own site
This commit is contained in:
parent
48db062b49
commit
0897154584
7 changed files with 30 additions and 30 deletions
|
@ -2,6 +2,7 @@ import sys
|
|||
import logging
|
||||
|
||||
import gevent
|
||||
import gevent.hub
|
||||
|
||||
from Config import config
|
||||
|
||||
|
@ -30,20 +31,19 @@ def handleErrorNotify(*args):
|
|||
sys.__excepthook__(*args)
|
||||
|
||||
|
||||
OriginalGreenlet = gevent.Greenlet
|
||||
|
||||
|
||||
class ErrorhookedGreenlet(OriginalGreenlet):
|
||||
def _report_error(self, exc_info):
|
||||
sys.excepthook(exc_info[0], exc_info[1], exc_info[2])
|
||||
|
||||
if config.debug:
|
||||
if config.debug: # Keep last error for /Debug
|
||||
sys.excepthook = handleError
|
||||
else:
|
||||
sys.excepthook = handleErrorNotify
|
||||
|
||||
gevent.Greenlet = gevent.greenlet.Greenlet = ErrorhookedGreenlet
|
||||
reload(gevent)
|
||||
|
||||
# Override default error handler to allow silent killing / custom logging
|
||||
gevent.hub.Hub._original_handle_error = gevent.hub.Hub.handle_error
|
||||
|
||||
def handleGreenletError(self, context, type, value, tb):
|
||||
sys.excepthook(type, value, tb)
|
||||
|
||||
gevent.hub.Hub.handle_error = handleGreenletError
|
||||
|
||||
if __name__ == "__main__":
|
||||
import time
|
||||
|
@ -51,14 +51,16 @@ if __name__ == "__main__":
|
|||
monkey.patch_all(thread=False, ssl=False)
|
||||
import Debug
|
||||
|
||||
def sleeper():
|
||||
print "started"
|
||||
def sleeper(num):
|
||||
print "started", num
|
||||
time.sleep(3)
|
||||
print "stopped"
|
||||
thread1 = gevent.spawn(sleeper)
|
||||
thread2 = gevent.spawn(sleeper)
|
||||
raise Exception("Error")
|
||||
print "stopped", num
|
||||
thread1 = gevent.spawn(sleeper, 1)
|
||||
thread2 = gevent.spawn(sleeper, 2)
|
||||
time.sleep(1)
|
||||
print "killing..."
|
||||
thread1.throw(Exception("Hello"))
|
||||
thread2.throw(Debug.Notify("Throw"))
|
||||
thread1.kill(exception=Debug.Notify("Worker stopped"))
|
||||
#thread2.throw(Debug.Notify("Throw"))
|
||||
print "killed"
|
||||
gevent.joinall([thread1,thread2])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue