diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2003-06-29 16:58:41 +0000 |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2003-06-29 16:58:41 +0000 |
commit | f9f12e208278bb42f2c2c22f8b0fa78ab5497d9a (patch) | |
tree | 83551c62c223a3ebe99dafb2602a830ca21ff010 /Lib/threading.py | |
parent | 2fc790f02dce2f95d8a1dc1dcf16534783c30cdf (diff) | |
download | cpython-f9f12e208278bb42f2c2c22f8b0fa78ab5497d9a.tar.gz |
Add settrace() and setprofile() functions to the threading library.
Diffstat (limited to 'Lib/threading.py')
-rw-r--r-- | Lib/threading.py | 20 |
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: |