Hello Gerrit,

Gerrit Voß wrote:
> ok, after thinking a little and fixing my initial rather brain dead
> tries ;), coming back to the initial problem set ;)
> On Thu, 2009-03-26 at 17:21 -0500, Carsten Neumann wrote:
>> Thinking about this some more Dirk and I found three problematic scenarios:
>>
>> 1) the above situation with a beacon pointing "back" to an object that 
>> already has a sub[Weak]Reference() running,
> 
> that should be fixed again.

great :)

>> 2) an object that only has a weak pointer to it (e.g. it is held in a 
>> cache).
> 
> not sure about that one, what was the problem with having only
> a weak ptr to an object ? Except that you maybe could resurrect the
> object through a very low level interface. But if we need to we should
> be able to avoid this now.

the problem is that this case is (was?) not easily distinguishable from 
the case were the last weak reference goes away from an object that has 
already an subReference{Unrecorded,Recorded} in flight. In the latter 
case the object should not be destroyed from subWeakReference(), in the 
former it should.

>> 3) two threads one giving up a reference to an object the other one 
>> giving up a weak reference (this case currently still has a race I think).
> 
> yes it should have had. With the change to single ref count op
> locations and the spinlock so that the refcount state can only
> be seen in a consistent form I hope that should be gone.

ok, nice :)

        Cheers,
                Carsten


------------------------------------------------------------------------------
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to