Hi Serge,

Curious.  The particular bit of code does actually acquire the mutex
lock - the whole method is:

void DatabasePager::RequestQueue::takeFirst(osg::ref_ptr<DatabaseRequest>&
databaseRequest)
{
    OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_requestMutex);

    if (!_requestList.empty())
    {
        _requestList.sort(SortFileRequestFunctor());
        databaseRequest = _requestList.front();
        _requestList.erase(_requestList.begin());
    }
}

So there must be somewhere else that isn't playing ball properly and
hasn't acquired the lock as it should.

Robert.

On Thu, May 22, 2008 at 3:04 PM, Serge Lages <[EMAIL PROTECTED]> wrote:
> Forget what I've said, I found a workaround.
> My custom PagedLOD works juste fine with the new DatabasePager, but.... only
> in release mode.
> In debug, Visual Studio spot an error in :
> DatabasePager.cpp line 272 :
>
> if (!_requestList.empty())
>     {
>         _requestList.sort(SortFileRequestFunctor());
>         databaseRequest = _requestList.front();
>         _requestList.erase(_requestList.begin());
>     }
>
> It crash because requestList is empty when we call databaseRequest =
> _requestList.front();
> So it seems to be a thread problem, is there anywhere requestList is
> modified without locking _requestMutex ?
>
> On Thu, May 22, 2008 at 3:42 PM, Robert Osfield <[EMAIL PROTECTED]>
> wrote:
>>
>> Hi Serge,
>>
>> On Thu, May 22, 2008 at 2:11 PM, Robert Osfield
>> <[EMAIL PROTECTED]> wrote:
>> >> I customize the data storage. :)
>>
>> I now wonder if the PerRangeData shouldn't be a base class that you
>> extend, if you derive from this then the various PagedLOD methods
>> would still be available, so no need to go add virtual methods where
>> none would otherwise be required.
>>
>> We'd need to add other virtual methods to support make PerRangeData
>> subclassable, and PerRangeDataList would have to be a list of
>> <ref_ptr<PerRangeData>> but that is all doable... although perhaps a
>> bit more intrusive w.r.t. backwards compatibility of the API.
>>
>> Robert.
>> _______________________________________________
>> 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-openscenegraph.org

Reply via email to