DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(guile.info.gz) GC Hooks

Info Catalog (guile.info.gz) Guile Hooks (guile.info.gz) REPL Hooks
 
 24.6.5.1 Hooks for Garbage Collection
 .....................................
 
 Whenever Guile performs a garbage collection, it calls the following
 hooks in the order shown.
 
  -- C Hook: scm_before_gc_c_hook
      C hook called at the very start of a garbage collection, after
      setting `scm_gc_running_p' to 1, but before entering the GC
      critical section.
 
      If garbage collection is blocked because `scm_block_gc' is
      non-zero, GC exits early soon after calling this hook, and no
      further hooks will be called.
 
  -- C Hook: scm_before_mark_c_hook
      C hook called before beginning the mark phase of garbage
      collection, after the GC thread has entered a critical section.
 
  -- C Hook: scm_before_sweep_c_hook
      C hook called before beginning the sweep phase of garbage
      collection.  This is the same as at the end of the mark phase,
      since nothing else happens between marking and sweeping.
 
  -- C Hook: scm_after_sweep_c_hook
      C hook called after the end of the sweep phase of garbage
      collection, but while the GC thread is still inside its critical
      section.
 
  -- C Hook: scm_after_gc_c_hook
      C hook called at the very end of a garbage collection, after the GC
      thread has left its critical section.
 
  -- Scheme Hook: after-gc-hook
      Asyncs::) soon after the GC has completed and any other events
      that were deferred during garbage collection have been processed.
      (Also accessible from C with the name `scm_after_gc_hook'.)
 
    All the C hooks listed here have type `SCM_C_HOOK_NORMAL', are
 initialized with hook closure data NULL, are are invoked by
 `scm_c_hook_run' with call closure data NULL.
 
    The Scheme hook `after-gc-hook' is particularly useful in
 conjunction with guardians ( Guardians).  Typically, if you are
 using a guardian, you want to call the guardian after garbage collection
 to see if any of the objects added to the guardian have been collected.
 By adding a thunk that performs this call to `after-gc-hook', you can
 ensure that your guardian is tested after every garbage collection
 cycle.
 
Info Catalog (guile.info.gz) Guile Hooks (guile.info.gz) REPL Hooks
automatically generated byinfo2html