From Pjotr Svetachov, "when you restart threading
with startThreading/stopThreading the _drawQueue and _availableQueue are not reset properly. This can lead to a deadlock when threading is started again. So before threading is started again the queues must be reset. This deadlock is also reported earlier by someone else in here: http://forum.openscenegraph.org/viewtopic.php?p=43415#43415"
This commit is contained in:
@@ -69,6 +69,8 @@ class OSGVIEWER_EXPORT Renderer : public osg::GraphicsOperation
|
||||
|
||||
virtual void release();
|
||||
|
||||
virtual void reset();
|
||||
|
||||
/** Force update of state associated with cameras. */
|
||||
void setCameraRequiresSetUp(bool flag);
|
||||
bool getCameraRequiresSetUp() const;
|
||||
@@ -101,6 +103,9 @@ class OSGVIEWER_EXPORT Renderer : public osg::GraphicsOperation
|
||||
/** Release any thread waiting on the queue, even if the queue is empty. */
|
||||
void release();
|
||||
|
||||
/** Reset to fefault state (_isReleased = false)*/
|
||||
void reset();
|
||||
|
||||
/** Take a SceneView from the queue. Can return 0 if release() is called when the queue is empty. */
|
||||
osgUtil::SceneView* takeFront();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user