No more crash in debug ! :)
Good work !

On Mon, Jun 16, 2008 at 11:18 AM, Serge Lages <[EMAIL PROTECTED]> wrote:

> 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
>> > >> osg-users@lists.openscenegraph.org
>> > >>
>> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph
>> > >> .org
>> > >
>> > >
>> > >
>> > > --
>> > > Serge Lages
>> > > http://www.tharsis-software.com
>> > > _______________________________________________
>> > > osg-users mailing list
>> > > osg-users@lists.openscenegraph.org
>> > >
>> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.
>> > > org
>> > >
>> > >
>> > _______________________________________________
>> > osg-users mailing list
>> > osg-users@lists.openscenegraph.org
>> > 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
>> osg-users@lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>
>
>
> --
> Serge Lages
> http://www.tharsis-software.com
>



-- 
Serge Lages
http://www.tharsis-software.com
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to