/* 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.
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;