[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: removing scm_gc_mark_conservatively()
From: |
Marius Vollmer |
Subject: |
Re: removing scm_gc_mark_conservatively() |
Date: |
28 Sep 2001 00:52:01 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.0.102 |
Dirk Herrmann <address@hidden> writes:
> Hello Marius,
>
> a question: How do you think should initialization work? A first
> approach would be similar to:
>
> #define SCM_INIT_CELL(c, x, y) \
> do { \
> SCM_SET_CELL_WORD_1 (c, y); \
> SCM_SET_CELL_TYPE (c, x); \
> scm_remember_upto_here_1 (y); \
> }
I would combine this with allocating the cell so that you could not
allocate a new cell without initializing it at the same time.
The init portion would be like you have outlined above. For
cooperative threading (i.e., all we can offer now), the
scm_remember_upto_here_1 would not be necessary since the
initialization can not be interrupted by the GC. For preemptive
threading, we could find specialized ways to implement
scm_remember_upto_here_1 that are cheaper, like a volatile asm for
GCC, and maybe other tricks on other platforms, like assigning to a
volatile location.
- removing scm_gc_mark_conservatively(), Chris Cramer, 2001/09/16
- Re: removing scm_gc_mark_conservatively(), Dirk Herrmann, 2001/09/17
- Re: removing scm_gc_mark_conservatively(), Marius Vollmer, 2001/09/22
- Re: removing scm_gc_mark_conservatively(), Dirk Herrmann, 2001/09/24
- Re: removing scm_gc_mark_conservatively(), Marius Vollmer, 2001/09/25
- Re: removing scm_gc_mark_conservatively(), Dirk Herrmann, 2001/09/25
- Re: removing scm_gc_mark_conservatively(), Marius Vollmer, 2001/09/26
- Re: removing scm_gc_mark_conservatively(), Dirk Herrmann, 2001/09/27
- Re: removing scm_gc_mark_conservatively(), Dirk Herrmann, 2001/09/27
- Re: removing scm_gc_mark_conservatively(),
Marius Vollmer <=
- Re: removing scm_gc_mark_conservatively(), Marius Vollmer, 2001/09/27