> ok, but there should also be a "Refcount decreased" entry in A's 
> Changelist, which on the next sync should take care of destroying A's 
> State object.
> I'd like to understand why that does not happen/work in this case, since 
> this is the mechanism that also takes care of the more usual cases.

There will be no "Refcount decreased" entry for A's StatePtr because Thread A of
my application can't destroy the corresponding Material immediately since a
removal of it just results in a decreased RefCount (from 2 to 1) and an entry to
the changelist. So, the material will be destroyed during a synchronisation
where the call Changelist::applyAndClear() will finally delete it. However, this
applyAndClear call locks the current (Thread B's) Changelist to readonly! So the
StatePtrs of each aspect of the Material will decrease by one as explained in my
previous mail but without adding these decreases to the changelist.
By the way, even if it would do that, I don't apply the changes made in Thread B
to Thread A. (At least not yet.)

> not putting the ref count changes into the changelist may be the right 
> thing for State objects in Material, but if there are other places it is 
> used the situation might be different.

I used the xxxCacheRefCP calls for those CachePtrs only and within the State
class itself. This State class is the only part I am not sure about. Where
reside StatePtrs and access to methods of them in OpenSG? Is there any situation
in which the aspects of a state will be synchronised? I might should remove the
xxxCacheRefCP functions from the State class and ensure proper beginEditCP and
endEditCP calls instead to enforce the synchronisation of those aspects but I
would prefer not to since one of the aspects will never be used.

> hm, one thing that depends much more on the changelist than multiple 
> threads on one machine is the cluster code, so there is a possibility it 
> is broken with the changes.

I see but shouldn't the memory leaks then also affect the cluster code?


Cheers
Till

------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to