diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-03-01 17:45:17 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-03-01 17:50:05 +0100 |
commit | 01b69e79f617db3c68b117512b6fe29978ba0ebb (patch) | |
tree | 0263e6bd8291cb7e0f762c3da4a820745e63738b /libguile/threads.h | |
parent | 0f595d7d1d57b12036bef801538163d3773567c3 (diff) | |
download | guile-01b69e79f617db3c68b117512b6fe29978ba0ebb.tar.gz |
Allow the SMOB mark procedures to be called when libgc uses parallel markers.
Fixes <http://bugs.gnu.org/13611>.
Reported by Mike Gran <spk121@yahoo.com>.
* libguile/smob.c (current_mark_stack_pointer,
current_mark_stack_limit): New variables.
(smob_mark): Use CURRENT_MARK_STACK_POINTER and
CURRENT_MARK_STACK_LIMIT instead of the same-named fields of
`SCM_I_CURRENT_THREAD'.
(scm_gc_mark): Likewise.
(scm_smob_prehistory): Initialize CURRENT_MARK_STACK_LIMIT and
CURRENT_MARK_STACK_POINTER.
* libguile/threads.h (scm_i_thread): Add comment that
`current_mark_stack_ptr' and `current_mark_stack_limit' are no longer
used.
Diffstat (limited to 'libguile/threads.h')
-rw-r--r-- | libguile/threads.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libguile/threads.h b/libguile/threads.h index ec129bc72..901c37bb2 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -3,7 +3,8 @@ #ifndef SCM_THREADS_H #define SCM_THREADS_H -/* Copyright (C) 1996,1997,1998,2000,2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2006, + * 2007, 2008, 2009, 2011, 2013 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -71,8 +72,8 @@ typedef struct scm_i_thread { scm_i_pthread_cond_t sleep_cond; int sleep_fd, sleep_pipe[2]; - /* Information about the Boehm-GC mark stack during the mark phase. This - is used by `scm_gc_mark ()'. */ + /* XXX: These two fields used to hold information about the BDW-GC + mark stack during the mark phase. They are no longer used. */ void *current_mark_stack_ptr; void *current_mark_stack_limit; |