[core] Remove RunLoop::{ref,unref}
This commit is contained in:
@@ -41,9 +41,6 @@ public:
|
||||
void runOnce();
|
||||
void stop();
|
||||
|
||||
void ref();
|
||||
void unref();
|
||||
|
||||
// So far only needed by the libcurl backend.
|
||||
void addWatch(int fd, Event, std::function<void(int, Event)>&& callback);
|
||||
void removeWatch(int fd);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include <mbgl/platform/log.hpp>
|
||||
#include <mbgl/util/run_loop.hpp>
|
||||
#include <mbgl/util/async_task.hpp>
|
||||
#include <mbgl/util/thread_local.hpp>
|
||||
@@ -73,8 +72,6 @@ public:
|
||||
return reinterpret_cast<uv_handle_t*>(holder);
|
||||
}
|
||||
|
||||
int refCount = 1;
|
||||
|
||||
uv_loop_t *loop = nullptr;
|
||||
uv_async_t* holder = new uv_async_t;
|
||||
|
||||
@@ -164,28 +161,7 @@ void RunLoop::runOnce() {
|
||||
}
|
||||
|
||||
void RunLoop::stop() {
|
||||
invoke([&] {
|
||||
unref();
|
||||
|
||||
if (impl->refCount) {
|
||||
Log::Debug(mbgl::Event::General, "Blocking on pending events.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void RunLoop::ref() {
|
||||
++impl->refCount;
|
||||
}
|
||||
|
||||
void RunLoop::unref() {
|
||||
// Main loop already stopped.
|
||||
if (impl->refCount == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!--impl->refCount) {
|
||||
uv_unref(impl->holderHandle());
|
||||
}
|
||||
invoke([&] { uv_unref(impl->holderHandle()); });
|
||||
}
|
||||
|
||||
void RunLoop::addWatch(int fd, Event event, std::function<void(int, Event)>&& callback) {
|
||||
|
||||
@@ -29,47 +29,3 @@ TEST(RunLoop, MultipleStop) {
|
||||
|
||||
loop.run();
|
||||
}
|
||||
|
||||
TEST(RunLoop, UnrefShouldStop) {
|
||||
RunLoop loop(RunLoop::Type::New);
|
||||
|
||||
Timer timer;
|
||||
timer.start(mbgl::Duration::zero(), mbgl::Duration::zero(), [&] {
|
||||
loop.unref();
|
||||
});
|
||||
|
||||
loop.run();
|
||||
}
|
||||
|
||||
TEST(RunLoop, RefUnref) {
|
||||
RunLoop loop(RunLoop::Type::New);
|
||||
|
||||
Timer timer;
|
||||
auto zero = mbgl::Duration::zero();
|
||||
|
||||
auto cb3 = [&] {
|
||||
loop.stop();
|
||||
};
|
||||
|
||||
auto cb2 = [&] {
|
||||
loop.unref();
|
||||
loop.unref();
|
||||
|
||||
loop.ref();
|
||||
|
||||
timer.start(zero, zero, cb3);
|
||||
};
|
||||
|
||||
auto cb1 = [&] {
|
||||
loop.ref();
|
||||
loop.ref();
|
||||
|
||||
loop.unref();
|
||||
|
||||
timer.start(zero, zero, cb2);
|
||||
};
|
||||
|
||||
timer.start(zero, zero, cb1);
|
||||
|
||||
loop.run();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user