[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