DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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