diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbthread.h | 3 | ||||
-rw-r--r-- | gdb/thread.c | 12 |
3 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 56f2909..63cbdcb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2014-07-10 Doug Evans <dje@google.com> + + * gdbthread.h (any_running): Declare. + * thread.c (any_running): New function. + 2014-07-09 Pedro Alves <palves@redhat.com> * infcmd.c (attach_command_post_wait): Don't call diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h index 9ef74cd..ca52983 100644 --- a/gdb/gdbthread.h +++ b/gdb/gdbthread.h @@ -363,6 +363,9 @@ extern int is_exited (ptid_t ptid); /* In the frontend's perpective, is this thread stopped? */ extern int is_stopped (ptid_t ptid); +/* In the frontend's perpective is there any thread running? */ +extern int any_running (void); + /* Marks thread PTID as executing, or not. If ptid_get_pid (PTID) is -1, marks all threads. diff --git a/gdb/thread.c b/gdb/thread.c index e25d563..532149d 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -648,6 +648,18 @@ is_running (ptid_t ptid) } int +any_running (void) +{ + struct thread_info *tp; + + for (tp = thread_list; tp; tp = tp->next) + if (tp->state == THREAD_RUNNING) + return 1; + + return 0; +} + +int is_executing (ptid_t ptid) { struct thread_info *tp; |