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
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel