I'm not sure if this is the source but it's a possible issue anyway: Neither detach() nor join() are called on the thread, and it looks like threads are created in the joinable state. The thread package has to allocate some resources to the thread that are not automatically cleaned up when the thread exits (e.g., a place to hold its return value until another thread joins it). The thread's owner should probably call join() to wait for the thread to finish, or detach() to specify that the library is allowed to free this data.
AC On 9/24/07, Cedric Pinson <[EMAIL PROTECTED]> wrote: > I have a leak but i don't know if it's justified or if it's a known > issue, i googled a little on internet, and i did not find anything. > So i ask on the mailing before searching deeper. > For information i call the cancel method at the end of my program. > > ==18164== 152 bytes in 1 blocks are definitely lost in loss record 3 of 4 > ==18164== at 0x4020848: calloc (in > /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) > ==18164== by 0x4010568: allocate_dtv (in /lib/ld-2.5.so) > ==18164== by 0x401060D: _dl_allocate_tls (in /lib/ld-2.5.so) > ==18164== by 0x4F88A98: pthread_create@@GLIBC_2.1 (in > /lib/libpthread-2.5.so) > ==18164== by 0x4D4A704: OpenThreads::Thread::start() (PThread.c++:624) > ==18164== by 0x4D4A74A: OpenThreads::Thread::startThread() > (PThread.c++:642) > ==18164== by 0x8068C42: markneting::MarkNeting::update() > (MarkNeting.cpp:219) > ==18164== by 0x8057E39: > markneting::MyFixturetest_updateHelper::RunTest(UnitTest::TestResults&) > (test-MarkNeting.cpp:137) > ==18164== by 0x80588DE: > markneting::TestMyFixturetest_update::RunImpl(UnitTest::TestResults&) > const (test-MarkNeting.cpp:124) > ==18164== by 0x4D50FA3: UnitTest::Test::Run(UnitTest::TestResults&) > const (in /usr/lib/libunittest++.so.0.0.0) > ==18164== by 0x4: ??? > ==18164== by 0x4F7EFF3: (within /lib/libc-2.5.so) > > I try with an osg example (osgtext), and it seems to have the same leak > > ==18217== 152 bytes in 1 blocks are possibly lost in loss record 20 of 33 > ==18217== at 0x4020848: calloc (in > /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) > ==18217== by 0x4010568: allocate_dtv (in /lib/ld-2.5.so) > ==18217== by 0x401060D: _dl_allocate_tls (in /lib/ld-2.5.so) > ==18217== by 0x450FA98: pthread_create@@GLIBC_2.1 (in > /lib/libpthread-2.5.so) > ==18217== by 0x402834E: OpenThreads::Thread::start() (in > /home/mornifle/dev/tmp/osg-svn/OpenSceneGraph/lib/libOpenThreads.so.1.9.6) > ==18217== by 0x402839C: OpenThreads::Thread::startThread() (in > /home/mornifle/dev/tmp/osg-svn/OpenSceneGraph/lib/libOpenThreads.so.1.9.6) > ==18217== by 0x448D065: osgViewer::Viewer::startThreading() (in > /home/mornifle/dev/tmp/osg-svn/OpenSceneGraph/lib/libosgViewer.so.2.1.9) > ==18217== by 0x448FED6: osgViewer::Viewer::setUpThreading() (in > /home/mornifle/dev/tmp/osg-svn/OpenSceneGraph/lib/libosgViewer.so.2.1.9) > > maybe it's just a valgrind mistake :) if someone has more informations > > -- > +33 (0) 6 63 20 03 56 Cedric Pinson mailto:[EMAIL PROTECTED] > http://www.plopbyte.net > > > _______________________________________________ > 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

