aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-threadevent.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/py-threadevent.c')
-rw-r--r--gdb/python/py-threadevent.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c
index 05a833d..2b2a449 100644
--- a/gdb/python/py-threadevent.c
+++ b/gdb/python/py-threadevent.c
@@ -53,3 +53,24 @@ create_thread_event_object (PyTypeObject *py_type, PyObject *thread)
return thread_event_obj;
}
+
+/* Emits a thread exit event for THREAD */
+
+int
+emit_thread_exit_event (thread_info * thread)
+{
+ if (evregpy_no_listeners_p (gdb_py_events.thread_exited))
+ return 0;
+
+ auto py_thr = thread_to_thread_object (thread);
+
+ if (py_thr == nullptr)
+ return -1;
+
+ auto inf_thr = create_thread_event_object (&thread_exited_event_object_type,
+ py_thr.get ());
+ if (inf_thr == nullptr)
+ return -1;
+
+ return evpy_emit_event (inf_thr.get (), gdb_py_events.thread_exited);
+}