+bool ResourceManager::LoadingThread::try_remove_resource(ManagedResource &r)
+{
+ MutexLock lock(queue_mutex);
+
+ LoadQueue::iterator i = find(async_queue.begin(), async_queue.end(), &r);
+ if(i==async_queue.end())
+ {
+ i = find(sync_queue.begin(), sync_queue.end(), &r);
+ if(i!=sync_queue.end())
+ sync_queue.erase(i);
+ }
+ else if(i==async_queue.begin())
+ return false;
+ else
+ async_queue.erase(i);
+
+ return true;
+}
+
+bool ResourceManager::LoadingThread::sync()