Hi Sherman, Thanks for the ThreadChecker output, just scanned through it. I don't know how to interpret all the various warnings.
W.r.t crash on exit, I can recreate that here, and strongly suspect its an order of destruction issue caused by the DeleteHandler caching objects. I am considering avoiding use of DeleteHandler, but this will require use of ref_ptr<> in some way in the rendering backend, something that could have a significant performance impact unless we are really careful. This is a different topic to text threading issue though. Since there are lots of warnings, it'd be nice to isolate the different problems more, and fix them all - if they are real problems rather than false positives. Doing such a complete purge will take some time though. Robert. On 8/30/07, sherman wilcox <[EMAIL PROTECTED]> wrote: > I ran this on two different systems. > > Dell 470 - Windows XP 32 dual processor nVidia FX 3400 : no crashes at > runtime, ran extensively, exited cleanly > Dell 490 - Windows Vista 64 Quad Core nVidia 8800GTX : no crashes at > runtime, crashes on exit in the delete handlers. The crash on exit isn't > consistent, have to run it for a while. There's a call stack from the crash > at the bottom of my message. > > In both tests I was using the DrawThreadPerContext threading model. > > I ran Intel ThreadChecker 3.1 against this test app on the XP32 box. I've > attached the logfile from threadchecker. I'm afraid there's a lot of "noise" > in there, but hopefully it will help someone. If you find the threadchecker > output interesting and wish to pursue it further, I'm willing to host a > WebEx meeting and allow you to pop in on one of my dev boxes to further > investigate with me if you like. > > > > > > osg.dll!std::list<osg::ref_ptr<osg::Operation>,std::allocator<osg::ref_ptr<osg::Operation> > > >::clear() Line 826 + 0x19 bytes C++ > osg.dll!osg::OperationQueue::~OperationQueue() Line 56 + > 0x43 bytes C++ > osgViewer.dll!osg::OperationQueue::`scalar deleting > destructor'() + 0x9 bytes C++ > osg.dll!osg::DeleteHandler::flushAll() Line 141 + 0x10 > bytes C++ > osgViewer.dll!osgViewer::`dynamic atexit destructor for > 'createWindowingSystemInterfaceProxy''() + 0x21 bytes C++ > osgViewer.dll!_CRT_INIT(void * hDllHandle=0x00db0000, unsigned long > dwReason=939280740, void * lpreserved=0x00000001) Line 412 + 0x9 bytes C > osgViewer.dll!__DllMainCRTStartup(void * > hDllHandle=0x00db0000, unsigned long dwReason=0, void * > lpreserved=0x00000000) Line 512 + 0x8 bytes C > osgViewer.dll!_DllMainCRTStartup(void * > hDllHandle=0x00db0000, unsigned long dwReason=0, void * > lpreserved=0x00000001) Line 462 + 0x11 bytes C > [EMAIL PROTECTED] () + 0x14 bytes > [EMAIL PROTECTED]() - 0xd1 bytes > [EMAIL PROTECTED]() - 0x13 bytes > kernel32.dll!761292c7() > msvcr80.dll!___crtExitProcess() + 0x14 bytes > msvcr80.dll!__cinit() + 0x102 bytes > msvcr80.dll!_exit() + 0xd bytes > osgtest.exe!__tmainCRTStartup() Line 614 C > [EMAIL PROTECTED]@12() + 0xe bytes > msvcr80.dll!_exit() + 0xd bytes > osgtest.exe!__tmainCRTStartup() Line 614 C > [EMAIL PROTECTED]@12 () + 0xe bytes > [EMAIL PROTECTED]@12() + 0xe bytes > > > > > On 8/28/07, Robert Osfield <[EMAIL PROTECTED]> wrote: > > > > To help in the process of isolating and fixing the osgText threading > > issues users have seen I have modified the osgtext example to do text > > creation in a background thread. You can now run it via: > > > > osgtext --mt > > > > What you will see on screen is a box with text strings randomly > > appearing/disappearing in the box. > > > > As yet I haven't see any crashes due to the font glyphs being queried > > at the same time the text is being updated - which was the point of > > the example code... These are the ones Ewe's changes look like they > > might address. > > > > I have also added the stats handler into the example to allow us to > > see the performance, but also by coincidence it adds a failure mode - > > when you enable stats freetype errors start appearing. These errors > > look to be down to freetype being based around a state model where one > > of threads is setting the sizes and current fonts to one thing and the > > other thread is try at the same time to set them to another. > > Freetype itself might not be thread safe either, but my current feel > > is that we might need more than just serializing access to freetype, > > we'll need to group several operations at once and serialize these > > batches. > > > > Robert. > > _______________________________________________ > > osg-users mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

