2011-04-19 Marc Khouzam <marc.khouzam@ericsson.com>

* thread.c (any_live_thread_of_process): Prioritize threads
	that are not executing.
	* gdbthread.h (any_live_thread_of_process): Update comment
	as per above change.
This commit is contained in:
Marc Khouzam 2011-04-19 15:16:14 +00:00
parent ed4b0e6a52
commit 9941e0c5c1
3 changed files with 14 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2011-04-19 Marc Khouzam <marc.khouzam@ericsson.com>
* thread.c (any_live_thread_of_process): Prioritize threads
that are not executing.
* gdbthread.h (any_live_thread_of_process): Update comment
as per above change.
2011-04-19 Andreas Schwab <schwab@linux-m68k.org>
* xcoffread.c (process_xcoff_symbol): Remove useless cast.

View File

@ -287,7 +287,7 @@ struct thread_info *first_thread_of_process (int pid);
extern struct thread_info *any_thread_of_process (int pid);
/* Returns any non-exited thread of process PID, giving preference for
already stopped threads. */
not executing threads. */
extern struct thread_info *any_live_thread_of_process (int pid);
/* Change the ptid of thread OLD_PTID to NEW_PTID. */

View File

@ -470,18 +470,18 @@ struct thread_info *
any_live_thread_of_process (int pid)
{
struct thread_info *tp;
struct thread_info *tp_running = NULL;
struct thread_info *tp_executing = NULL;
for (tp = thread_list; tp; tp = tp->next)
if (ptid_get_pid (tp->ptid) == pid)
if (tp->state_ != THREAD_EXITED && ptid_get_pid (tp->ptid) == pid)
{
if (tp->state_ == THREAD_STOPPED)
if (tp->executing_)
tp_executing = tp;
else
return tp;
else if (tp->state_ == THREAD_RUNNING)
tp_running = tp;
}
return tp_running;
return tp_executing;
}
/* Print a list of thread ids currently known, and the total number of