MCPcopy Create free account
hub / github.com/fabioz/PyDev.Debugger / suspend_all_threads

Function suspend_all_threads

_pydevd_bundle/pydevd_thread_lifecycle.py:87–115  ·  view source on GitHub ↗

Suspend all except the one passed as a parameter. :param except_thread:

(py_db, except_thread)

Source from the content-addressed store, hash-verified

85
86
87def suspend_all_threads(py_db, except_thread):
88 """
89 Suspend all except the one passed as a parameter.
90 :param except_thread:
91 """
92 if PYDEVD_USE_SYS_MONITORING:
93 pydevd_sys_monitoring.update_monitor_events(suspend_requested=True)
94
95 pydev_log.info("Suspending all threads except: %s", except_thread)
96 all_threads = pydevd_utils.get_non_pydevd_threads()
97 for t in all_threads:
98 if getattr(t, "pydev_do_not_trace", None):
99 pass # skip some other threads, i.e. ipython history saving thread from debug console
100 else:
101 if t is except_thread:
102 continue
103 info = mark_thread_suspended(t, CMD_THREAD_SUSPEND, main_suspend=False)
104 frame = info.get_topmost_frame(t)
105
106 # Reset the tracing as in this case as it could've set scopes to be untraced.
107 if frame is not None:
108 try:
109 py_db.set_trace_for_frame_and_parents(t.ident, frame)
110 finally:
111 frame = None
112
113 if PYDEVD_USE_SYS_MONITORING:
114 # After suspending the frames we need the monitoring to be reset.
115 pydevd_sys_monitoring.restart_events()

Callers 2

set_suspendMethod · 0.90

Calls 4

mark_thread_suspendedFunction · 0.85
infoMethod · 0.80
get_topmost_frameMethod · 0.80

Tested by

no test coverage detected