blob: 91e4ed48a8a0b2a7b9b0c311012a5f9614237850 (
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#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;
std::unique_ptr<Scheduled> schedule(mbgl::Duration, std::weak_ptr<mbgl::Mailbox>, std::unique_ptr<mbgl::Message>) override {
// Not implemented
assert(false);
return {};
};
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
|