Is there a modern GC for D?

Leandro Lucarella llucax at gmail.com
Wed Feb 10 06:51:37 PST 2010


Robert Jacques, el 10 de febrero a las 01:03 me escribiste:
> -Getting concurrent GC code correct is very hard. Boehm's algorithm,
> for instance, looks extremely racy.

There is a very simple concurrent GC model using fork()[1]. This is Unix only
though (and very dependent on how efficiently fork() is implemented in the
OS). I'm working (very slowly :) on implementing a GC based on this
algorithm.

No races, almost no synchronization. If the OS uses COW when fork()ing (I
guess every modern OS does that), the only drawback is the copying of
changed pages.

[1] Nonintrusive Cloning Garbage Collector with Stock Operating System
    Support.
    http://www.cs.purdue.edu/homes/grr/snapshot-gc.ps

-- 
Leandro Lucarella (AKA luca)                     http://llucax.com.ar/
----------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------



More information about the Digitalmars-d mailing list