On Sat, 16 Apr 2011, Anders Gidenstam wrote:

> My failed attempt to unlink the particle systems might provide some insight 
> into that issue. The attempt is broken because the
> methods calls
>            if (!Particles::getCommonRoot()->removeChild(item)) {
> or
>            if (!Particles::getCommonGeode()->removeDrawable(item)) {
> can get called while another OSG thread traverses or inserts into the vector 
> of children to the common root/geod.

Hmm.. I should have added that I looked at this in early September last 
year so it is not fresh in my memory.

IIRC the current code already does the fundamentaly unsafe operation of 
adding items to a STL vector (in the loader thread) while concurrent
traversals of the same vector are possible (by various parts of OSG 
rendering). That is NOT SAFE but a lot less risky than deleting from an 
STL vector with concurrent traversal (consider the most likely internal 
representation of a STL vector to see why).


Cheers,

Anders
-- 
---------------------------------------------------------------------------
Anders Gidenstam
WWW: http://www.gidenstam.org/FlightGear/

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to