[Neo-report] r2158 gregory - in /trunk/neo: ./ client/ master/ storage/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Jun 11 10:14:00 CEST 2010
Author: gregory
Date: Fri Jun 11 10:13:56 2010
New Revision: 2158
Log:
Use SIGRTMIN+0 to log debug informations.
This requires the live debugger to be enabled. Only master, storage and
client side handle this signal.
Modified:
trunk/neo/client/app.py
trunk/neo/live_debug.py
trunk/neo/master/app.py
trunk/neo/storage/app.py
Modified: trunk/neo/client/app.py
==============================================================================
--- trunk/neo/client/app.py [iso-8859-1] (original)
+++ trunk/neo/client/app.py [iso-8859-1] Fri Jun 11 10:13:56 2010
@@ -48,6 +48,7 @@ from neo.client.mq import MQ
from neo.client.pool import ConnectionPool
from neo.util import u64, parseMasterList
from neo.profiling import profiler_decorator, PROFILING_ENABLED
+from neo.live_debug import register as registerLiveDebugger
if PROFILING_ENABLED:
# Those functions require a "real" python function wrapper before they can
@@ -179,6 +180,7 @@ class Application(object):
self._nm_acquire = lock.acquire
self._nm_release = lock.release
self.compress = compress
+ registerLiveDebugger(on_log=self.log)
def log(self):
self.em.log()
Modified: trunk/neo/live_debug.py
==============================================================================
--- trunk/neo/live_debug.py [iso-8859-1] (original)
+++ trunk/neo/live_debug.py [iso-8859-1] Fri Jun 11 10:13:56 2010
@@ -65,8 +65,14 @@ def debugHandler(sig, frame):
def pdbHandler(sig, frame):
pdb.set_trace()
-def register():
+def register(on_log=None):
if ENABLED:
signal.signal(signal.SIGUSR1, debugHandler)
signal.signal(signal.SIGUSR2, pdbHandler)
+ if on_log is not None:
+ # use 'kill -RTMIN <pid>
+ @decorate
+ def on_log_signal(signum, signal):
+ on_log()
+ signal.signal(signal.SIGRTMIN, on_log_signal)
Modified: trunk/neo/master/app.py
==============================================================================
--- trunk/neo/master/app.py [iso-8859-1] (original)
+++ trunk/neo/master/app.py [iso-8859-1] Fri Jun 11 10:13:56 2010
@@ -93,7 +93,7 @@ class Application(object):
self._current_manager = None
- registerLiveDebugger()
+ registerLiveDebugger(on_log=self.log)
def log(self):
self.em.log()
Modified: trunk/neo/storage/app.py
==============================================================================
--- trunk/neo/storage/app.py [iso-8859-1] (original)
+++ trunk/neo/storage/app.py [iso-8859-1] Fri Jun 11 10:13:56 2010
@@ -85,7 +85,7 @@ class Application(object):
if config.getUUID() is not None:
self.uuid = config.getUUID()
- registerLiveDebugger()
+ registerLiveDebugger(on_log=self.log)
def log(self):
self.em.log()
More information about the Neo-report
mailing list