* gc.h, gc.c (SCM_FREECELL_P): Removed for good.
authorMarius Vollmer <mvo@zagadka.de>
Thu, 10 Mar 2005 18:39:53 +0000 (18:39 +0000)
committerMarius Vollmer <mvo@zagadka.de>
Thu, 10 Mar 2005 18:39:53 +0000 (18:39 +0000)
commitb17e0ac397fbab715704464f35a91745c55e0a1c
tree6043dac6c12450e04312fe6e36c8b2f6a94a6209
parent94d375b5a77578f636494655afafde29eb7f8972
* gc.h, gc.c (SCM_FREECELL_P): Removed for good.
(scm_block_gc, scm_gc_heap_lock): Removed.  Removed all uses.
(scm_gc_running_p): Now a macro that refers to the scm_i_thread
field.
(scm_i_sweep_mutex): Now a non-recursive mutex.  GC can not happen
recursively.
(scm_igc, scm_i_gc): Renamed former to latter.  Changed all uses.
Do not lock scm_i_sweep_mutex, which is now non-recursive, or set
scm_gc_running_p.  Do not run the scm_after_gc_c_hook.
(scm_gc): Lock scm_i_sweep_mutex, set scm_gc_running_p and run the
scm_after_gc_c_hook here.
(scm_gc_for_new_cell): Set scm_gc_running_p here and run the
scm_after_gc_c_hook when a full GC has in fact been performed.
(scm_i_expensive_validation_check): Call scm_gc, not scm_i_gc.

* gc-segment.c (scm_i_get_new_heap_segment): Do not check
scm_gc_heap_lock.

* gc-malloc.c (scm_realloc, increase_mtrigger): Set
scm_gc_running_p while the scm_i_sweep_mutex is locked.
libguile/gc-malloc.c
libguile/gc-segment.c
libguile/gc.c
libguile/gc.h