GC and Threading

Matthew Mondor mm_lists at pulsar-zone.net
Fri Nov 6 17:26:03 UTC 2015

On Fri, 06 Nov 2015 00:12:40 +0100
Bix <strabixbox at yahoo.com> wrote:

> Yep, manage memory manually is impratical  and as you said circular
> structures are one of the real problem.

With reference counting these should be a problem, although libgc is a
mark-and-sweep collector which should detect when elements are no
longer referenced more effectively.

> I played a bit with the boot option but I was unable to embed ECL and
> not have at least one additional thread spaw by the GC or it was the
> SIGNAL_HANDLING_THREAD ? However I always end up with at least two
> thread ( in Linux  ), am I doing something wrong ?

ECL indeed starts a thread to handle signals when it is built with
threads support.

> I tried to build with --enable-gengc but I'm unable to build, I think
> that is Issue #81.

Unfortunately I presonally have no experience using the generational
variant, but others here might have used it.  I think that boehm-gc
itself only supports the option on a few select operating systems.

> I just noticed the cl_boot options allow INCREMENTAL_GC what the
> difference between that one and the autoconf option --enable-gengc

Presumably --enable-gengc allows to build optional support, and
INCREMENTAL_GC permits to enable said support for that instance.

I also noticed your question about share-nothing; this is what would
occur if you used actual OS processes for the instances.


More information about the ecl-devel mailing list