diff --git a/include/osgDB/ImagePager b/include/osgDB/ImagePager index 3b4ac7376..0564112f7 100644 --- a/include/osgDB/ImagePager +++ b/include/osgDB/ImagePager @@ -122,8 +122,10 @@ class OSGDB_EXPORT ImagePager : public osg::NodeVisitor::ImageRequestHandler void sort(); + unsigned int size() const; + RequestList _requestList; - OpenThreads::Mutex _requestMutex; + mutable OpenThreads::Mutex _requestMutex; }; diff --git a/src/osgDB/ImagePager.cpp b/src/osgDB/ImagePager.cpp index 4fea58e6f..19a45879c 100644 --- a/src/osgDB/ImagePager.cpp +++ b/src/osgDB/ImagePager.cpp @@ -35,13 +35,20 @@ struct ImagePager::SortFileRequestFunctor ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -// ReadQueue +// RequestQueue // void ImagePager::RequestQueue::sort() { std::sort(_requestList.begin(),_requestList.end(),SortFileRequestFunctor()); } +unsigned int ImagePager::RequestQueue::size() const +{ + OpenThreads::ScopedLock lock(_requestMutex); + return _requestList.size(); +} + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // @@ -74,9 +81,12 @@ void ImagePager::ReadQueue::clear() void ImagePager::ReadQueue::add(ImagePager::ImageRequest* databaseRequest) { OpenThreads::ScopedLock lock(_requestMutex); + _requestList.push_back(databaseRequest); databaseRequest->_requestQueue = this; + OSG_INFO<<"ImagePager::ReadQueue::add(..), size()="<