MCPcopy Create free account
hub / github.com/nodejs/node-addon-api / PersistentTestWorker

Class PersistentTestWorker

test/async_worker_persistent.cc:11–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9namespace {
10
11class PersistentTestWorker : public AsyncWorker {
12 public:
13 static PersistentTestWorker* current_worker;
14 static void DoWork(const CallbackInfo& info) {
15 bool succeed = info[0].As<Boolean>();
16 Function cb = info[1].As<Function>();
17
18 PersistentTestWorker* worker = new PersistentTestWorker(cb, "TestResource");
19 current_worker = worker;
20
21 worker->SuppressDestruct();
22 worker->_succeed = succeed;
23 worker->Queue();
24 }
25
26 static Value GetWorkerGone(const CallbackInfo& info) {
27 return Boolean::New(info.Env(), current_worker == nullptr);
28 }
29
30 static void DeleteWorker(const CallbackInfo& info) {
31 (void)info;
32 delete current_worker;
33 }
34
35 ~PersistentTestWorker() { current_worker = nullptr; }
36
37 protected:
38 void Execute() override {
39 if (!_succeed) {
40 SetError("test error");
41 }
42 }
43
44 private:
45 PersistentTestWorker(Function cb, const char* resource_name)
46 : AsyncWorker(cb, resource_name) {}
47
48 bool _succeed;
49};
50
51PersistentTestWorker* PersistentTestWorker::current_worker = nullptr;
52

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected