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:
HelloZeroNet 2016-03-11 12:39:39 +01:00
parent 48db062b49
commit 0897154584
7 changed files with 30 additions and 30 deletions

View file

@ -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])