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