POV-Ray : Newsgroups : povray.off-topic : A tale of two cities : Re: A tale of two cities Server Time
29 Jul 2024 20:28:27 EDT (-0400)
  Re: A tale of two cities  
From: Warp
Date: 14 Mar 2012 12:57:57
Message: <4f60ce15@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 14.03.2012 16:52, schrieb Warp:
> > clipka<ano### [at] anonymousorg>  wrote:
> >> While this is true, it is not a problem specific to reference counting,
> >> but one that is inherent in /any/ attempt at automatic object lifetime
> >> management.
> >
> >    It's not a problem for a garbage collector.

> Last time I heard, reference counting /is/ a garbage collection mechanism.

  I think you know what I mean.

> >    And btw, cyclic references are not the only problematic situation with
> > reference counting. There are cases where objects may be deleted too early,
> > while there's still code using them.

> I can't think of any reason why that could possibly happen, provided 
> that the reference counting is implemented in a thread-safe manner.

  Module A has a reference-counting smart pointer pointing to an object B.

  A member function of that object B calls a function of module A. Said
function of A drops the reference to object B. Since it was the only
reference pointing to it, the object B gets deleted. When the function
in A ends, the execution returns to the member function of B, which now
operates on a deleted object. Undefined behavior ensues.

  Yes, that *can* happen.

-- 
                                                          - Warp


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.