[core] use RAII-style lifetime tracking of Request objects

This commit is contained in:
Konstantin Käfer
2015-10-15 15:46:12 +02:00
parent 94a5ac857f
commit 096a3edf39
13 changed files with 57 additions and 56 deletions

View File

@@ -52,10 +52,7 @@ MapContext::~MapContext() {
void MapContext::cleanup() {
view.notify();
if (styleRequest) {
util::ThreadContext::getFileSource()->cancel(styleRequest);
styleRequest = nullptr;
}
styleRequest = nullptr;
// Explicit resets currently necessary because these abandon resources that need to be
// cleaned up by glObjectStore.performCleanup();
@@ -95,13 +92,7 @@ void MapContext::setStyleURL(const std::string& url) {
return;
}
FileSource* fs = util::ThreadContext::getFileSource();
if (styleRequest) {
fs->cancel(styleRequest);
styleRequest = nullptr;
}
styleRequest = nullptr;
styleURL = url;
styleJSON.clear();
@@ -113,8 +104,8 @@ void MapContext::setStyleURL(const std::string& url) {
base = styleURL.substr(0, pos + 1);
}
FileSource* fs = util::ThreadContext::getFileSource();
styleRequest = fs->request({ Resource::Kind::Style, styleURL }, util::RunLoop::getLoop(), [this, base](const Response &res) {
util::ThreadContext::getFileSource()->cancel(styleRequest);
styleRequest = nullptr;
if (res.status == Response::Successful) {