GC, the simple solution
Bruno Medeiros
brunodomedeirosATgmail at SPAM.com
Wed Jun 7 12:03:15 PDT 2006
Walter Bright wrote:
>> Only if the reference is stored,
>> the ref counter has to be incremented. This is only possible if this is
>> done by the compiler. No smart pointer can do this :)
>>
>>> 3) in a multithreaded app, the incs and decs must be synchronized
>>
>> Isn't a atomic inc/dec enough?
>
> That requires synchronizing.
>
Are you sure? It says in
http://www.iecc.com/gclist/GC-algorithms.html#Reference%20counting that:
"In a multi-threaded system, if threads are preemptively scheduled,
reference counting requires additional care to ensure that the updates
to reference counts are atomic. This is straightforward using hardware
primitives such as fetch-and-add, compare-and-swap, or
load-linked/store-conditional, but it is definitely necessary to pay
attention to this detail." ?
--
Bruno Medeiros - CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
More information about the Digitalmars-d
mailing list