aboutsummaryrefslogtreecommitdiff
path: root/gdb/guile/scm-safe-call.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@igalia.com>2015-03-11 13:07:53 +0100
committerAndy Wingo <wingo@igalia.com>2015-03-11 13:07:53 +0100
commit92fab5a61707cd3b487219ea9efa0e410cde3bc4 (patch)
tree809ea0e4bc4e5c49afd066aea5cbf5372b72f055 /gdb/guile/scm-safe-call.c
parente03f96456f2313854efff2377134af6cbda96af8 (diff)
downloadgdb-92fab5a61707cd3b487219ea9efa0e410cde3bc4.zip
gdb-92fab5a61707cd3b487219ea9efa0e410cde3bc4.tar.gz
gdb-92fab5a61707cd3b487219ea9efa0e410cde3bc4.tar.bz2
[guile] Run finalizers from GDB thread
gdb/ChangeLog: * guile/guile.c (_initialize_guile): Disable automatic finalization, if Guile offers us that possibility. * guile/guile.c (call_initialize_gdb_module): * guile/scm-safe-call.c (gdbscm_with_catch): Arrange to run finalizers in appropriate places. * config.in (HAVE_GUILE_MANUAL_FINALIZATION): New definition. * configure.ac (AC_TRY_LIBGUILE): Add a check for scm_set_automatic_finalization_enabled. * configure: Regenerated.
Diffstat (limited to 'gdb/guile/scm-safe-call.c')
-rw-r--r--gdb/guile/scm-safe-call.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/guile/scm-safe-call.c b/gdb/guile/scm-safe-call.c
index 9255556..6052214 100644
--- a/gdb/guile/scm-safe-call.c
+++ b/gdb/guile/scm-safe-call.c
@@ -155,6 +155,10 @@ gdbscm_with_catch (void *data)
d->unwind_handler, d,
d->pre_unwind_handler, d);
+#if HAVE_GUILE_MANUAL_FINALIZATION
+ scm_run_finalizers ();
+#endif
+
return NULL;
}