summaryrefslogtreecommitdiff
path: root/test/src/mbgl/test/stub_file_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/mbgl/test/stub_file_source.cpp')
-rw-r--r--test/src/mbgl/test/stub_file_source.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/test/src/mbgl/test/stub_file_source.cpp b/test/src/mbgl/test/stub_file_source.cpp
index 7b92fd253f..75d7e2d072 100644
--- a/test/src/mbgl/test/stub_file_source.cpp
+++ b/test/src/mbgl/test/stub_file_source.cpp
@@ -11,20 +11,24 @@ public:
}
~StubFileRequest() override {
- fileSource.pending.erase(this);
+ fileSource.remove(this);
}
StubFileSource& fileSource;
};
StubFileSource::StubFileSource() {
- timer.start(10ms, 10ms, [this] {
+ timer.start(1ms, 1ms, [this] {
// Explicit copy to avoid iterator invalidation if ~StubFileRequest gets called within the loop.
auto pending_ = pending;
for (auto& pair : pending_) {
optional<Response> res = std::get<1>(pair.second)(std::get<0>(pair.second));
if (res) {
std::get<2>(pair.second)(*res);
+
+ if (!res->error) {
+ remove(pair.first);
+ }
}
}
});
@@ -38,6 +42,13 @@ std::unique_ptr<AsyncRequest> StubFileSource::request(const Resource& resource,
return std::move(req);
}
+void StubFileSource::remove(AsyncRequest* req) {
+ auto it = pending.find(req);
+ if (it != pending.end()) {
+ pending.erase(it);
+ }
+}
+
optional<Response> StubFileSource::defaultResponse(const Resource& resource) {
switch (resource.kind) {
case Resource::Kind::Style: