Hi Robert, i fixed the deadlock using a separate mutex on the updateList in Terrain. Another option would be using a ReadWriteMutex, so the read operations (traversal and get) don't block each other.
I think there are also some not thread safe operations in the code, e.g. the Terrain::getTile(const TileID& tileID) returns a TerrainTile* which could be deleted in another thread - maybe this should be changed to a osg::ref<>. Or the deleting operation should be moved to a location where no other database threads run and also the viewer thread is not running. Regards, Andreas ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=27278#27278 Attachments: http://forum.openscenegraph.org//files/terrain_550.zip _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

