{"ref":"refs/heads/master","push_id":55142902,"commits":[{"sha":"f017d90d953236a11ee9499f2a4e2e678c397bfc","author":{"email":"3ed027b95e680fe91a1f3a630d0abbfc163bb953@gmail.com","name":"Robert OSFIELD"},"url":"https://api.github.com/repos/openscenegraph/osg/commits/f017d90d953236a11ee9499f2a4e2e678c397bfc","message":"Gunnar Holm, \"After upgrading from 2.8.3 to 3.0.1 we experienced a lock in the Mutex\nfunctionality when using Terrain::setVerticalScale. This was caused by\nthe following call sequence resulting in a lockup:\n\nvoid Terrain::setVerticalScale(float scale)\n  CALLS    dirtyRegisteredTiles();\n\n\nvoid Terrain::dirtyRegisteredTiles(int dirtyMask)\n SETS LOCK    OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);\n and CALLS (on every tile)   setDirtyMask(dirtyMask);\n\n\nvoid TerrainTile::setDirtyMask(int dirtyMask)\n CALLS _terrain->updateTerrainTileOnNextFrame(this);\n\n\nvoid Terrain::updateTerrainTileOnNextFrame(TerrainTile* terrainTile)\n SETS LOCK   OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);\n******* PROBLEM - since lock has already been set! ********\n\n\nThe suggested fix submitted changes from using Mutex to ReentrantMutex.\n\""}],"head":"f017d90d953236a11ee9499f2a4e2e678c397bfc","size":1}