[Top][All Lists]
[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.
- Re: stumped by scm_car/scm_cdr,
Marius Vollmer <=