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

Re: when GC is permitted

This page is part of the web mail archives of SRFI 50 from before July 7th, 2015. The new archives for SRFI 50 contain all messages, not just those from before July 7th, 2015.



Richard Kelsey <kelsey@xxxxxxx> writes:
>    From: Jim Blandy <jimb@xxxxxxxxxx>
>    Date: 07 Jan 2004 17:01:17 -0500
> 
>    I gather that your current inclination is to preserve the requirement
>    that GC may only take place during calls to specially marked API
>    functions.  Thus, collection must wait until all active C calls have
>    called a marked API function.  Is that correct?
> 
> Yes.  An exception, which should be mentioned in the SRFI and
> may affect your situation, is that systems using a conservative
> GC could GC at any time.

Okay, thanks for making that clear.

I've never really been comfortable with conservative GC, so the
exception you mention doesn't affect the suitability of SRFI-50 for
use by the implementation I've planned.

Since there's been some friction about these things, I wanted to make
explicit what meant when I said:

    So it seems to me that the requirement that all C calls must be in
    marked SRFI-50 functions seriously restricts SRFI-50's usefulness in
    these scenarios.  It's my impression that most developers would
    consider it "not useful".  (I admit that's just an impression.)

For developers working in single-threaded contexts, which is the more
common case, I think SRFI-50 will be quite useful.  And SRFI-50's low
overhead relative to JNI-style interfaces is an attractive feature.

The "not useful" judgement is what I think people will reach when
considering SRFI-50 in contexts that use multiple system-level
threads.