gdb: Move value_from_host_double into value.c and make more use of it
[deliverable/binutils-gdb.git] / gdb / python / py-continueevent.c
index 8c704b930f32135c89b4ec886e324732ac641d32..b9de1971d910427f56470c34fd90fe7a4f74c69a 100644 (file)
@@ -1,6 +1,6 @@
 /* Python interface to inferior continue events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 
 #include "defs.h"
 #include "py-event.h"
-#include "py-ref.h"
+#include "gdbthread.h"
+
+/* Create a gdb.ContinueEvent event.  gdb.ContinueEvent is-a
+   gdb.ThreadEvent, and thread events can either be thread specific or
+   process wide.  If gdb is running in non-stop mode then the event is
+   thread specific (in which case the PTID thread is included in the
+   event), otherwise it is process wide (in which case PTID is
+   ignored).  In either case a new reference is returned.  */
 
 static gdbpy_ref<>
-create_continue_event_object (void)
+create_continue_event_object (ptid_t ptid)
 {
-  return create_thread_event_object (&continue_event_object_type);
+  gdbpy_ref<> py_thr = py_get_event_thread (ptid);
+
+  if (py_thr == nullptr)
+    return nullptr;
+
+  return create_thread_event_object (&continue_event_object_type,
+                                    py_thr.get ());
 }
 
 /* Callback function which notifies observers when a continue event occurs.
@@ -37,7 +50,7 @@ emit_continue_event (ptid_t ptid)
   if (evregpy_no_listeners_p (gdb_py_events.cont))
     return 0;
 
-  gdbpy_ref<> event (create_continue_event_object ());
+  gdbpy_ref<> event = create_continue_event_object (ptid);
   if (event != NULL)
     return evpy_emit_event (event.get (), gdb_py_events.cont);
   return -1;
This page took 0.025353 seconds and 4 git commands to generate.