static void restore_current_thread (ptid_t);
static void prune_threads (void);
-/* Frontend view of the thread state. Possible extensions: stepping,
- finishing, until(ling),... */
-enum thread_state
-{
- THREAD_STOPPED,
- THREAD_RUNNING,
- THREAD_EXITED,
-};
-
struct thread_info*
inferior_thread (void)
{
/* Nothing to follow yet. */
tp->pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
- tp->state_ = THREAD_STOPPED;
+ tp->state = THREAD_STOPPED;
return tp;
}
tp = new_thread (null_ptid);
/* Make switch_to_thread not read from the thread. */
- tp->state_ = THREAD_EXITED;
+ tp->state = THREAD_EXITED;
switch_to_thread (null_ptid);
/* Now we can delete it. */
/* Now reset its ptid, and reswitch inferior_ptid to it. */
tp->ptid = ptid;
- tp->state_ = THREAD_STOPPED;
+ tp->state = THREAD_STOPPED;
switch_to_thread (ptid);
observer_notify_new_thread (tp);
if (tp->refcount > 0
|| ptid_equal (tp->ptid, inferior_ptid))
{
- if (tp->state_ != THREAD_EXITED)
+ if (tp->state != THREAD_EXITED)
{
observer_notify_thread_exit (tp, silent);
/* Tag it as exited. */
- tp->state_ = THREAD_EXITED;
+ tp->state = THREAD_EXITED;
/* Clear breakpoints, etc. associated with this thread. */
clear_thread_inferior_resources (tp);
}
/* Notify thread exit, but only if we haven't already. */
- if (tp->state_ != THREAD_EXITED)
+ if (tp->state != THREAD_EXITED)
observer_notify_thread_exit (tp, silent);
/* Tag it as exited. */
- tp->state_ = THREAD_EXITED;
+ tp->state = THREAD_EXITED;
clear_thread_inferior_resources (tp);
if (tpprev)
struct thread_info *tp_executing = NULL;
for (tp = thread_list; tp; tp = tp->next)
- if (tp->state_ != THREAD_EXITED && ptid_get_pid (tp->ptid) == pid)
+ if (tp->state != THREAD_EXITED && ptid_get_pid (tp->ptid) == pid)
{
- if (tp->executing_)
+ if (tp->executing)
tp_executing = tp;
else
return tp;
for (tp = thread_list; tp; tp = tp->next)
{
- if (tp->state_ == THREAD_EXITED)
+ if (tp->state == THREAD_EXITED)
continue;
if (ptid_equal (tp->ptid, inferior_ptid))
static int
thread_alive (struct thread_info *tp)
{
- if (tp->state_ == THREAD_EXITED)
+ if (tp->state == THREAD_EXITED)
return 0;
if (!target_thread_alive (tp->ptid))
return 0;
for (tp = thread_list; tp; tp = tp->next)
if (all || ptid_get_pid (tp->ptid) == ptid_get_pid (ptid))
{
- if (tp->state_ == THREAD_EXITED)
+ if (tp->state == THREAD_EXITED)
continue;
- if (running && tp->state_ == THREAD_STOPPED)
+ if (running && tp->state == THREAD_STOPPED)
any_started = 1;
- tp->state_ = running ? THREAD_RUNNING : THREAD_STOPPED;
+ tp->state = running ? THREAD_RUNNING : THREAD_STOPPED;
}
if (any_started)
observer_notify_target_resumed (ptid);
tp = find_thread_ptid (ptid);
gdb_assert (tp);
- gdb_assert (tp->state_ != THREAD_EXITED);
- if (running && tp->state_ == THREAD_STOPPED)
+ gdb_assert (tp->state != THREAD_EXITED);
+ if (running && tp->state == THREAD_STOPPED)
started = 1;
- tp->state_ = running ? THREAD_RUNNING : THREAD_STOPPED;
+ tp->state = running ? THREAD_RUNNING : THREAD_STOPPED;
if (started)
observer_notify_target_resumed (ptid);
}
tp = find_thread_ptid (ptid);
gdb_assert (tp);
- return tp->state_ == state;
+ return tp->state == state;
}
int
struct thread_info *tp;
for (tp = thread_list; tp; tp = tp->next)
- if (tp->state_ == THREAD_RUNNING)
+ if (tp->state == THREAD_RUNNING)
return 1;
return 0;
tp = find_thread_ptid (ptid);
gdb_assert (tp);
- return tp->executing_;
+ return tp->executing;
}
void
{
for (tp = thread_list; tp; tp = tp->next)
if (all || ptid_get_pid (tp->ptid) == ptid_get_pid (ptid))
- tp->executing_ = executing;
+ tp->executing = executing;
}
else
{
tp = find_thread_ptid (ptid);
gdb_assert (tp);
- tp->executing_ = executing;
+ tp->executing = executing;
}
}
{
for (tp = thread_list; tp; tp = tp->next)
{
- if (tp->state_ == THREAD_EXITED)
+ if (tp->state == THREAD_EXITED)
continue;
if (all || ptid_get_pid (ptid) == ptid_get_pid (tp->ptid))
{
- if (tp->executing_ && tp->state_ == THREAD_STOPPED)
+ if (tp->executing && tp->state == THREAD_STOPPED)
any_started = 1;
- tp->state_ = tp->executing_ ? THREAD_RUNNING : THREAD_STOPPED;
+ tp->state = tp->executing ? THREAD_RUNNING : THREAD_STOPPED;
}
}
}
{
tp = find_thread_ptid (ptid);
gdb_assert (tp);
- if (tp->state_ != THREAD_EXITED)
+ if (tp->state != THREAD_EXITED)
{
- if (tp->executing_ && tp->state_ == THREAD_STOPPED)
+ if (tp->executing && tp->state == THREAD_STOPPED)
any_started = 1;
- tp->state_ = tp->executing_ ? THREAD_RUNNING : THREAD_STOPPED;
+ tp->state = tp->executing ? THREAD_RUNNING : THREAD_STOPPED;
}
}
if (pid != -1 && PIDGET (tp->ptid) != pid)
continue;
- if (tp->state_ == THREAD_EXITED)
+ if (tp->state == THREAD_EXITED)
continue;
++n_threads;
if (ptid_equal (tp->ptid, current_ptid))
current_thread = tp->num;
- if (tp->state_ == THREAD_EXITED)
+ if (tp->state == THREAD_EXITED)
continue;
chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
do_cleanups (str_cleanup);
}
- if (tp->state_ == THREAD_RUNNING)
+ if (tp->state == THREAD_RUNNING)
ui_out_text (uiout, "(running)\n");
else
{
{
char *state = "stopped";
- if (tp->state_ == THREAD_RUNNING)
+ if (tp->state == THREAD_RUNNING)
state = "running";
ui_out_field_string (uiout, "state", state);
}
/* Note that we can't reach this with an exited thread, due to the
thread_alive check above. */
- if (tp->state_ == THREAD_RUNNING)
+ if (tp->state == THREAD_RUNNING)
ui_out_text (uiout, "(running)\n");
else
{