X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fresources%2Fresourcemanager.cpp;h=f25e6ad1db1b53e609b68cf8d8d9559848da7b66;hb=25bf9ac36bccada6895dd09ce9abc3d503b672a5;hp=4bac0aec841aa1552f3062a42a93f57ea2b7fb31;hpb=e9a898f315b5d1396f196d785913a283c30940f2;p=libs%2Fgl.git
diff --git a/source/resources/resourcemanager.cpp b/source/resources/resourcemanager.cpp
index 4bac0aec..f25e6ad1 100644
--- a/source/resources/resourcemanager.cpp
+++ b/source/resources/resourcemanager.cpp
@@ -21,17 +21,6 @@ resource_load_error::resource_load_error(const string &name, const exception &ex
{ }
-ResourceManager::ResourceManager():
- policy(LOAD_ON_DEMAND),
- async_loads(true),
- total_data_size(0),
- size_limit(0),
- frame(0),
- min_retain_frames(30),
- max_retain_frames(0),
- next_unload(0)
-{ }
-
ResourceManager::~ResourceManager()
{
thread.terminate();
@@ -50,7 +39,7 @@ void ResourceManager::set_async_loads(bool a)
async_loads = a;
}
-void ResourceManager::set_size_limit(UInt64 s)
+void ResourceManager::set_size_limit(uint64_t s)
{
size_limit = s;
}
@@ -214,7 +203,7 @@ void ResourceManager::tick()
void ResourceManager::dispatch_work()
{
- queue.sort(age_order);
+ sort(queue, age_order);
if(queue.front()->last_used+min_retain_framessize_limit)
{
ManagedResource *best = 0;
- UInt64 best_impact = 0;
+ uint64_t best_impact = 0;
for(auto &kvp: resources)
if(kvp.second.state==ManagedResource::LOADED && kvp.second.last_usedbest_impact)
{
best = &kvp.second;
@@ -406,7 +395,8 @@ void ResourceManager::LoadingThread::main()
}
MutexLock lock(queue_mutex);
- sync_queue.splice(sync_queue.end(), async_queue, async_queue.begin());
+ sync_queue.push_back(async_queue.front());
+ async_queue.pop_front();
wait_for_work = async_queue.empty();
}
else
@@ -414,7 +404,7 @@ void ResourceManager::LoadingThread::main()
}
}
-ResourceManager::ManagedResource *ResourceManager::LoadingThread::front(list &que)
+ResourceManager::ManagedResource *ResourceManager::LoadingThread::front(deque &que)
{
MutexLock lock(queue_mutex);
if(que.empty())
@@ -519,7 +509,8 @@ bool ResourceManager::LoadingThread::sync()
{
MutexLock lock(queue_mutex);
bool was_empty = async_queue.empty();
- async_queue.splice(async_queue.end(), sync_queue, sync_queue.begin());
+ async_queue.push_back(sync_queue.front());
+ sync_queue.pop_front();
if(was_empty)
sem.signal();
}
@@ -528,10 +519,10 @@ bool ResourceManager::LoadingThread::sync()
return any_finished;
}
-UInt64 ResourceManager::LoadingThread::get_and_reset_loaded_data_size()
+uint64_t ResourceManager::LoadingThread::get_and_reset_loaded_data_size()
{
MutexLock lock(data_size_mutex);
- UInt64 result = loaded_data_size;
+ uint64_t result = loaded_data_size;
loaded_data_size = 0;
return result;
}