Hi Robert, Currently building the SVN trunk and I get this warning :
1>D:\OpenSceneGraph\include\osgDB/DatabasePager(348) : warning C4099: 'osgDB::DatabasePager::RequestQueue' : type name first seen using 'class' now seen using 'struct' 1> D:\OpenSceneGraph\include\osgDB/DatabasePager(312) : see declaration of 'osgDB::DatabasePager::RequestQueue' I'll let you know if everything works fine when the build will finish. On Sun, Jun 15, 2008 at 7:58 PM, Smeenk, R.J.M. (Roland) < [EMAIL PROTECTED]> wrote: > Hello Robbert, > > The SVN version is missing the changes (ReadQueue definition) to the > Databasepager header file. > > -- > Roland > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf > > Of Robert Osfield > > Sent: zondag 15 juni 2008 18:03 > > To: OpenSceneGraph Users > > Subject: Re: [osg-users] New Improved DatabasePager,now with > > even more threading! Please take a taste today :-) > > > > Hi Guys, > > > > While away on training last week, we came across the Windows > > debug build reporting problem in std::sort and find calls, > > and investigations into the issue suggested that it was down > > to the cull thread modifying the DatabaseRequest fields at > > the same time that those same fields were being used inside > > the std algorithms being run by the DatabasePager threads. > > The worst thing that would actually happen is that very > > occassionally the list would be sorted into incorrect order, > > but this in itself would only lead to a slightly sub-optimial > > ordering of loading tiles, it shouldn't actually break any > > app - so it's really more of an issue with the debugger being > > overly strict rather than having a serious race condition > > that would cause real problems. > > > > However, even having a benign, occasional, slightly > > sub-optimal ordering is a problem if end users under Windows > > are going to keep stumbling over this issue to due to > > compiler debugging screaming that there is a serious problem > > and crashing - so it's a community support problem rather > > than actual a real problem for proper applications, but > > having more support than we already have is an issue so I've > > gone ahead and found a solution. Now checked into SVN is an > > addition of a mutex lock on the current queue that a > > DatabaseRequest is a member inside the code that updates the > > DatabaseRequest parameters. This fix should prevent the > > problems appearing under VisualStudio debug build, it alas > > will also mean that all users will have to pay the cost of > > an non essential mutex lock. > > > > Could you guys do an svn update and let me know how things go. > > > > Robert. > > > > > > On Fri, Jun 13, 2008 at 10:48 AM, Serge Lages > > <[EMAIL PROTECTED]> wrote: > > > Hi James, > > > > > > I tried to look to this problem but can't find anything, > > moreover it > > > seems to work without problems in release (I'll try to make some > > > stress tests soon to be sure). > > > > > > On Fri, Jun 13, 2008 at 1:02 AM, Lynch, James > > <[EMAIL PROTECTED]> > > > wrote: > > >> > > >> I'm having a similar issue with > > >> DatabasePager::RequestQueue::takeFirst() > > >> > > >> (osg trunk, Debug build, windows XP VS2005). I'm getting some > > >> assertion errors at _requestList.sort ("sequence not > > ordered"). Even > > >> after adding the updateBlock(). > > >> > > >> > > >> I'm pretty new to this code section, so I'm probably off > > base here: > > >> Is it possible that the state of the databaseRequest > > objects within > > >> the list are being updated (from other threads) during the sort? > > >> > > >> IE. If the _timestampLastRequest or _priorityLastRequest > > are changing > > >> during the sort, the sort could become unstable. > > >> > > >> > > >> _______________________________________________ > > >> Jim Lynch > > >> > > >> -----Original Message----- > > >> On Tue, May 27, 2008 at 12:08 PM, Tim Moore <timoore at redhat.com> > > >> wrote: > > >> > > > >> > Indeed. I've made the necessary changes to FlightGear, > > and it seems > > >> > to be working fine. > > >> > > >> Except for being a cpu hog. > > >> > > >> Apparently, the pager thread is not blocked properly and > > continuously > > >> spins. The fact that the queue is empty is confirmed by the debug > > >> messages printed after the block call: > > >> HANDLE_NON_HTTP 0: _pager->_requestList.size()= 0 to delete = 0 > > >> > > >> I have been trying to find the place where the blocking is > > >> re-established when the queue goes empty, but could not > > find it. So I > > >> added an updateBlock() call at the end of > > >> DatabasePager::RequestQueue::takeFirst that seems to fix the issue. > > >> Could have added the call within the if-block, but this has the > > >> additional benefit of stopping runaway loops should > > somehow the pager > > >> thread get woken up without work to do. > > >> > > >> Index: DatabasePager.cpp > > >> =================================================================== > > >> --- DatabasePager.cpp (revision 8398) > > >> +++ DatabasePager.cpp (working copy) > > >> @@ -273,6 +273,7 @@ > > >> databaseRequest = _requestList.front(); > > >> _requestList.erase(_requestList.begin()); > > >> } > > >> + updateBlock(); > > >> } > > >> > > >> > > >> I am not sure if I need an osg-submissions mail for this? > > >> > > >> -- > > >> Cheers, > > >> Csaba/Jester.org/listinfo.cgi/osg-users-openscenegraph.org > > >> > > >> > > >> The information contained in this communication may be > > CONFIDENTIAL > > >> and is intended only for the use of the recipient(s) named > > above. If > > >> you are not the intended recipient, you are hereby > > notified that any > > >> dissemination, distribution, or copying of this > > communication, or any > > >> of its contents, is strictly prohibited. If you have > > received this > > >> communication in error, please notify the sender and > > delete/destroy > > >> the original message and any copy of it from your computer > > or paper files. > > >> _______________________________________________ > > >> osg-users mailing list > > >> [email protected] > > >> > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph > > >> .org > > > > > > > > > > > > -- > > > Serge Lages > > > http://www.tharsis-software.com > > > _______________________________________________ > > > 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-opensce > negraph.org<http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org> > > > This e-mail and its contents are subject to the DISCLAIMER at > http://www.tno.nl/disclaimer/email.html > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > -- Serge Lages http://www.tharsis-software.com
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

