summaryrefslogtreecommitdiff
path: root/Lib/threading.py
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2003-06-29 16:58:41 +0000
committerJeremy Hylton <jeremy@alum.mit.edu>2003-06-29 16:58:41 +0000
commitf9f12e208278bb42f2c2c22f8b0fa78ab5497d9a (patch)
tree83551c62c223a3ebe99dafb2602a830ca21ff010 /Lib/threading.py
parent2fc790f02dce2f95d8a1dc1dcf16534783c30cdf (diff)
downloadcpython-f9f12e208278bb42f2c2c22f8b0fa78ab5497d9a.tar.gz
Add settrace() and setprofile() functions to the threading library.
Diffstat (limited to 'Lib/threading.py')
-rw-r--r--Lib/threading.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/threading.py b/Lib/threading.py
index 7ec8eff92b..f48fb6e449 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -52,6 +52,18 @@ else:
def _note(self, *args):
pass
+# Support for profile and trace hooks
+
+_profile_hook = None
+_trace_hook = None
+
+def setprofile(func):
+ global _profile_hook
+ _profile_hook = func
+
+def settrace(func):
+ global _trace_hook
+ _trace_hook = func
# Synchronization classes
@@ -408,6 +420,14 @@ class Thread(_Verbose):
_active_limbo_lock.release()
if __debug__:
self._note("%s.__bootstrap(): thread started", self)
+
+ if _trace_hook:
+ self._note("%s.__bootstrap(): registering trace hook", self)
+ _sys.settrace(_trace_hook)
+ if _profile_hook:
+ self._note("%s.__bootstrap(): registering profile hook", self)
+ _sys.setprofile(_profile_hook)
+
try:
self.run()
except SystemExit: