guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: stumped by scm_car/scm_cdr


From: Marius Vollmer
Subject: Re: stumped by scm_car/scm_cdr
Date: Thu, 04 Nov 2004 17:49:26 +0100
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux)

Han-Wen Nienhuys <address@hidden> writes:

> address@hidden writes:
>> Han-Wen Nienhuys <address@hidden> writes:
>> 
>> > I've added a check to scm_cell/scm_double_cell that calls abort() if
>> > GC is running.
>> 
>> Well, OK.  Another idea is to set the freelists to NULL during GC
>> explicitely, thus causing scm_cell etc to call scm_gc_for_newcell
>> immediately, and scm_gc_for_newcell could then check whether the GC is
>> already running.  That would not make scm_cell etc slower for the
>> usual case that the GC is in fact not running.  Could you try that
>> variant?
>
> I tried to look at this, but scm_i_freelist is now a thread-specific
> variable. I'm unsure if and how they should all be set to null or
> SCM_EOL.

Only the scm_i_freelist of the thread actually doing the garbage
collection needs to be set, I think.  All other threads are stopped at
that time and can't allocate storage.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]