Hi,

I can confirm the behaviour with the following test case:
https://github.com/fwiesel/vertexarrayfunctest/blob/threads/main.cpp#L92-L103
All threads run on CPU 0.

That clears up the mystery, which baffled me and two of my colleagues:
After upgrading to a new Ubuntu version, suddenly our application making heavy 
use of the Intel Thread Building Blocks failed to scale with the cores.
Explicitly initialising the TBB early in the program solved the issue, so we 
blamed some change in TBB, and I didn't investigate further.

It looks like OSG was previously packaged  with QtThreads instead of pthreads, 
making the affinity operations a no-op, while the newer doesn't.

In the light that it affects any child thread, can I ask you to re-consider the 
affinity handling, and/or maybe rename 
osgViewer::ViewerBase::SingleThreaded to 
osgViewer::ViewerBase::SingleThreadedCpuLocked or something?

I understand, that it is possible to override the behaviour (which I did now), 
but that requires some internal knowledge of the library, which you obviously 
have.
But for me as a user, where OSG is simply one of the libraries I use, I would 
not it effectively to change the behaviour of a second one.

Thanks,
  Fabian
  
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to