diff options
author | Nicholas Duffek <nsd@redhat.com> | 2000-07-19 21:03:06 +0000 |
---|---|---|
committer | Nicholas Duffek <nsd@redhat.com> | 2000-07-19 21:03:06 +0000 |
commit | 7c952b6daed25b7bb09e90f524fd4981b0f62284 (patch) | |
tree | cc43da5bd0724f8a78ff2ea56c08aa658077e1c2 /gdb/thread.c | |
parent | f7db6139df6e8bb0f5853a973daddcebf6484aaf (diff) | |
download | gdb-7c952b6daed25b7bb09e90f524fd4981b0f62284.zip gdb-7c952b6daed25b7bb09e90f524fd4981b0f62284.tar.gz gdb-7c952b6daed25b7bb09e90f524fd4981b0f62284.tar.bz2 |
* thread.c (free_thread): New function.
(init_thread_list): Always zero highest_thread_num. Call
free_thread() instead of free().
(delete_thread): Move thread cleanup code to free_thread().
Diffstat (limited to 'gdb/thread.c')
-rw-r--r-- | gdb/thread.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/gdb/thread.c b/gdb/thread.c index 38e74d4..00c6467 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -63,22 +63,38 @@ static void restore_current_thread (int); static void switch_to_thread (int pid); static void prune_threads (void); +static void +free_thread (struct thread_info *tp) +{ + /* NOTE: this will take care of any left-over step_resume breakpoints, + but not any user-specified thread-specific breakpoints. */ + if (tp->step_resume_breakpoint) + delete_breakpoint (tp->step_resume_breakpoint); + + /* FIXME: do I ever need to call the back-end to give it a + chance at this private data before deleting the thread? */ + if (tp->private) + free (tp->private); + + free (tp); +} + void init_thread_list () { struct thread_info *tp, *tpnext; + highest_thread_num = 0; if (!thread_list) return; for (tp = thread_list; tp; tp = tpnext) { tpnext = tp->next; - free (tp); + free_thread (tp); } thread_list = NULL; - highest_thread_num = 0; } /* add_thread now returns a pointer to the new thread_info, @@ -134,19 +150,7 @@ delete_thread (pid) else thread_list = tp->next; - /* NOTE: this will take care of any left-over step_resume breakpoints, - but not any user-specified thread-specific breakpoints. */ - if (tp->step_resume_breakpoint) - delete_breakpoint (tp->step_resume_breakpoint); - - /* FIXME: do I ever need to call the back-end to give it a - chance at this private data before deleting the thread? */ - if (tp->private) - free (tp->private); - - free (tp); - - return; + free_thread (tp); } static struct thread_info * |