[osg-users] osg::Operation lags

Roman Grigoriev grigoriev at gosniias.ru
Fri Mar 20 06:09:50 PDT 2009

Thanx Robert!

I works fine

Here is my class if it will be useful for someone.


lass UpdateMissileOperation : public osg::Operation





        Operation("UpdateMissileOperation", true)





    virtual void operator () (osg::Object* callingObject)


              osgViewer::Viewer* viewer =

         double t;

            if (viewer)

        t = viewer->getFrameStamp()->getSimulationTime();


            if ((_dt>=0.02)) 











      void update()




       virtual void release()



       bool                              _load;

      bool                               _valid1;

      float _time;

      float _dt;



From: osg-users-bounces at lists.openscenegraph.org
[mailto:osg-users-bounces at lists.openscenegraph.org] On Behalf Of Roman
Sent: Friday, March 20, 2009 3:42 PM
To: 'OpenSceneGraph Users'
Subject: Re: [osg-users] osg::Operation lags


Thanx Robert!

Working with threads a little bit unfamiliar to me. 

Could you please point me to some examples how to use  YieldCurrentThread()

Thanx in advance



From: osg-users-bounces at lists.openscenegraph.org
[mailto:osg-users-bounces at lists.openscenegraph.org] On Behalf Of Robert
Sent: Friday, March 20, 2009 1:44 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] osg::Operation lags


HI Roman,

2009/3/20 Roman Grigoriev <grigoriev at gosniias.ru>

Hi Robert!

As you've seen in my operation thread  I simply write to stdout simple
message: "update" and nothing more.

But framerate lags unpredictable.

Maybe there is good example or readme how to use operationthread

Thanx in advance

I have never seen problems like yours when using OperationThread/Operatons,
but on a second review I see that your OpenThread never sleeps, it just
churns away as effectively a spin lock on the CPU. If your machine doesn't
have sufficient cores to handle a thead using 100% of the CPU core then
you'll get frame stalls like you have.

Try sticking a OpenThreads::Thread::YieldCurrentThread() into your


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20090320/0e706931/attachment-0003.htm>

More information about the osg-users mailing list