From b28f276162b56f8479240982edd3c49382104222 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Mon, 18 Aug 2008 23:24:57 +0000 Subject: * 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/bsd-uthread.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'gdb/bsd-uthread.c') 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; -- cgit v1.2.1