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