From b2a339f6e527fdf21dd665fe30b6bf9381680f51 Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Wed, 9 Mar 2005 19:14:36 +0000 Subject: [PATCH] Updated comments for current threading implementation. --- libguile/inline.h | 33 ++++----------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/libguile/inline.h b/libguile/inline.h index 49f99a1da..ce8b99ee4 100644 --- a/libguile/inline.h +++ b/libguile/inline.h @@ -121,24 +121,12 @@ scm_cell (scm_t_bits car, scm_t_bits cdr) /* Initialize the type slot last so that the cell is ignored by the GC until it is completely initialized. This is only relevant - when the GC can actually run during this code, which it can't for - cooperating threads, but it might be important when we get true - preemptive threads. + when the GC can actually run during this code, which it can't + since the GC only runs when all other threads are stopped. */ SCM_GC_SET_CELL_WORD (z, 1, cdr); SCM_GC_SET_CELL_WORD (z, 0, car); -#if 0 /*fixme* Hmm... let's consider this later. */ -#if !defined(SCM_USE_COOP_THREADS) && !defined(SCM_USE_NULL_THREADS) && !defined(SCM_USE_COPT_THREADS) - /* When we are using preemtive threads, we might need to make - sure that the initial values for the slots are protected until - the cell is completely initialized. - */ -#error review me - scm_remember_upto_here_1 (SCM_PACK (cdr)); -#endif -#endif - #if (SCM_DEBUG_CELL_ACCESSES == 1) if (scm_expensive_debug_cell_accesses_p ) scm_i_expensive_validation_check (z); @@ -180,27 +168,14 @@ scm_double_cell (scm_t_bits car, scm_t_bits cbr, /* Initialize the type slot last so that the cell is ignored by the GC until it is completely initialized. This is only relevant - when the GC can actually run during this code, which it can't for - cooperating threads, but it might be important when we get true - preemptive threads. + when the GC can actually run during this code, which it can't + since the GC only runs when all other threads are stopped. */ SCM_GC_SET_CELL_WORD (z, 1, cbr); SCM_GC_SET_CELL_WORD (z, 2, ccr); SCM_GC_SET_CELL_WORD (z, 3, cdr); SCM_GC_SET_CELL_WORD (z, 0, car); -#if 0 /*fixme* Hmm... let's consider this later. */ -#if !defined(SCM_USE_COOP_THREADS) && !defined(SCM_USE_NULL_THREADS) && !defined(SCM_USE_COPT_THREADS) - /* When we are using non-cooperating threads, we might need to make - sure that the initial values for the slots are protected until - the cell is completely initialized. - */ -#error review me - scm_remember_upto_here_3 (SCM_PACK (cbr), SCM_PACK (ccr), SCM_PACK (cdr)); -#endif -#endif - - #if (SCM_DEBUG_CELL_ACCESSES == 1) if (scm_debug_cell_accesses_p) {