blob: 302dfd70cfe5131a65236426621f6b0ae21ad64f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <mbgl/map/backend_scope.hpp>
#include <mbgl/map/backend.hpp>
#include <mbgl/util/thread_local.hpp>
namespace mbgl {
static util::ThreadLocal<Backend> currentBackend;
BackendScope::BackendScope(Backend& backend_)
: priorBackend(currentBackend.get()),
backend(backend_) {
backend.activate();
currentBackend.set(&backend);
}
BackendScope::~BackendScope() {
if (priorBackend) {
priorBackend->activate();
currentBackend.set(priorBackend);
} else {
backend.deactivate();
currentBackend.set(nullptr);
}
}
} // namespace mbgl
|