Add interface to disable automatic finalization
authorAndy Wingo <wingo@pobox.com>
Thu, 17 Apr 2014 13:29:13 +0000 (15:29 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 17 Apr 2014 13:29:13 +0000 (15:29 +0200)
commitd6651f690315df2ad14c2c043ffb6c949c28884e
tree4719dd303351aa47ce517fd3229c920a3a2f2001
parentf5765cc25eb56ab2e11a25066c0d8e2b9d292324
Add interface to disable automatic finalization

* libguile/finalizers.h:
* libguile/finalizers.c (run_finalizers_async_thunk)
  (finalization_thread_proc): Call the new scm_run_finalizers helper.
  (scm_i_finalizer_pre_fork): Only spawn the thread if automatic
  finalization is enabled.
  (scm_set_automatic_finalization_enabled, scm_run_finalizers): New
  functions.
  (scm_init_finalizers, scm_init_finalizer_thread): Only set a finalizer
  notifier if automatic finalization is enabled.

* doc/ref/libguile-smobs.texi (Garbage Collecting Smobs): Add discussion
  of concurrency.

* doc/ref/api-smobs.texi (Smobs): Document new functions.
doc/ref/api-smobs.texi
doc/ref/libguile-smobs.texi
libguile/finalizers.c
libguile/finalizers.h