[node] Remove NodeThreadPool

Simplify, use the default thread pool, less platform abstraction.
This commit is contained in:
Thiago Marcos P. Santos
2019-03-05 01:02:33 +02:00
parent 06f1dc48a2
commit cf08f6428a
3 changed files with 0 additions and 88 deletions

View File

@@ -41,8 +41,6 @@ target_sources(mbgl-node INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_request.cpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_feature.hpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_feature.cpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_thread_pool.hpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_thread_pool.cpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_expression.hpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_expression.cpp
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/util/async_queue.hpp

View File

@@ -1,49 +0,0 @@
#include "node_thread_pool.hpp"
#include "util/async_queue.hpp"
#include <mbgl/actor/mailbox.hpp>
#include <mbgl/platform/background_scheduler.hpp>
namespace node_mbgl {
NodeThreadPool::NodeThreadPool()
: queue(new util::AsyncQueue<std::weak_ptr<mbgl::Mailbox>>(uv_default_loop(), [](std::weak_ptr<mbgl::Mailbox> mailbox) {
Worker* worker = new Worker(mailbox);
Nan::AsyncQueueWorker(worker);
})) {
// Don't keep the event loop alive.
queue->unref();
}
NodeThreadPool::~NodeThreadPool() {
queue->stop();
}
void NodeThreadPool::schedule(std::weak_ptr<mbgl::Mailbox> mailbox) {
queue->send(std::move(mailbox));
}
NodeThreadPool::Worker::Worker(std::weak_ptr<mbgl::Mailbox> mailbox_)
: AsyncWorker(nullptr),
mailbox(std::move(mailbox_)) {};
void NodeThreadPool::Worker::Execute() {
mbgl::Mailbox::maybeReceive(mailbox);
}
void NodeThreadPool::Worker::WorkComplete() {
// no-op to avoid calling nullptr callback
}
} // namespace node_mbgl
namespace mbgl {
namespace platform {
Scheduler& GetBackgroundScheduler() {
static node_mbgl::NodeThreadPool pool;
return pool;
}
} // namespace platform
} // namespace mbgl

View File

@@ -1,37 +0,0 @@
#pragma once
#include <mbgl/actor/scheduler.hpp>
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wshadow"
#include <nan.h>
#pragma GCC diagnostic pop
namespace node_mbgl {
namespace util { template <typename T> class AsyncQueue; }
class NodeThreadPool : public mbgl::Scheduler {
public:
NodeThreadPool();
~NodeThreadPool();
void schedule(std::weak_ptr<mbgl::Mailbox>) override;
private:
util::AsyncQueue<std::weak_ptr<mbgl::Mailbox>>* queue;
class Worker : public Nan::AsyncWorker {
public:
Worker(std::weak_ptr<mbgl::Mailbox>);
void Execute();
void WorkComplete();
private:
std::weak_ptr<mbgl::Mailbox> mailbox;
};
};
} // namespace node_mbgl