From 395400814180b4d204736b9defc631005fde926b Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Mon, 18 Aug 2008 23:24:57 +0000 Subject: [PATCH] * bsd-uthread.c (bsd_uthread_close): New. (bsd_uthread_deactivate): Don't cleanup here, just unpush the target. (bsd_uthread_solib_loaded): Fix typo. (bsd_uthread_target): Register bsd_uthread_close. --- gdb/ChangeLog | 8 ++++++++ gdb/bsd-uthread.c | 25 ++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 91bc692d93b..b201340997c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2008-08-18 Pedro Alves + + * bsd-uthread.c (bsd_uthread_close): New. + (bsd_uthread_deactivate): Don't cleanup here, just unpush the + target. + (bsd_uthread_solib_loaded): Fix typo. + (bsd_uthread_target): Register bsd_uthread_close. + 2008-08-18 Pedro Alves * corelow.c (core_open): Assume there was no upper layer left diff --git a/gdb/bsd-uthread.c b/gdb/bsd-uthread.c index a15c78f2158..df038e6771e 100644 --- a/gdb/bsd-uthread.c +++ b/gdb/bsd-uthread.c @@ -192,18 +192,12 @@ bsd_uthread_activate (struct objfile *objfile) return 1; } -/* Deactivate the thread stratum implemented by this module. */ +/* Cleanup due to deactivation. */ static void -bsd_uthread_deactivate (void) +bsd_uthread_close (int quitting) { - /* Skip if the thread stratum has already been deactivated. */ - if (!bsd_uthread_active) - return; - bsd_uthread_active = 0; - unpush_target (bsd_uthread_ops_hack); - bsd_uthread_thread_run_addr = 0; bsd_uthread_thread_list_addr = 0; bsd_uthread_thread_state_offset = 0; @@ -212,6 +206,18 @@ bsd_uthread_deactivate (void) bsd_uthread_solib_name = NULL; } +/* Deactivate the thread stratum implemented by this module. */ + +static void +bsd_uthread_deactivate (void) +{ + /* Skip if the thread stratum has already been deactivated. */ + if (!bsd_uthread_active) + return; + + unpush_target (bsd_uthread_ops_hack); +} + void bsd_uthread_inferior_created (struct target_ops *ops, int from_tty) { @@ -239,7 +245,7 @@ bsd_uthread_solib_loaded (struct so_list *so) if (bsd_uthread_activate (so->objfile)) { - bsd_uthread_solib_name == so->so_original_name; + bsd_uthread_solib_name = so->so_original_name; return; } } @@ -490,6 +496,7 @@ bsd_uthread_target (void) t->to_shortname = "bsd-uthreads"; t->to_longname = "BSD user-level threads"; t->to_doc = "BSD user-level threads"; + t->to_close = bsd_uthread_close; t->to_mourn_inferior = bsd_uthread_mourn_inferior; t->to_fetch_registers = bsd_uthread_fetch_registers; t->to_store_registers = bsd_uthread_store_registers; -- 2.30.2