* gc.c, gc.h (scm_i_sweep_mutex): New mutex.
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Sat, 21 Dec 2002 18:59:47 +0000 (18:59 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Sat, 21 Dec 2002 18:59:47 +0000 (18:59 +0000)
commitfb50ef08ec6236c23b735595412766c4a7d14091
tree2f7fa3403010abe76c2bd922e0605693901fd7f5
parent0d48aca5273f0a8454db374c1deb4c5084cf778a
* gc.c, gc.h (scm_i_sweep_mutex): New mutex.

* gc.c (scm_gc_for_newcell), gc-malloc.c (scm_realloc,
scm_gc_register_collectable_memory): Substitute locking of
scm_i_sweep_mutex for calls to scm_i_thread_put_to_sleep.
(scm_igc): Lock sweep mutex here instead of in callers; Calls to
scm_i_thread_put_to_sleep/scm_i_thread_wake_up used to demarkate
the single-thread section (which now only contains the mark
phase).
(scm_gc): Don't lock sweeo mutex here since scm_igc locks it;
Removed SCM_DEFER/ALLOW_INTS.  Simply call scm_igc directly.

* threads.c (gc_section_mutex): Removed.
libguile/ChangeLog
libguile/gc-malloc.c
libguile/gc.c
libguile/gc.h
libguile/threads.c