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

Class DelayedTSFNTask

test/threadsafe_function/threadsafe_function_sum.cc:76–94  ·  view source on GitHub ↗

Task instance created for each new std::thread

Source from the content-addressed store, hash-verified

74
75// Task instance created for each new std::thread
76class DelayedTSFNTask {
77 public:
78 // Each instance has its own tsfn
79 ThreadSafeFunction tsfn;
80
81 // Thread-safety
82 std::mutex mtx;
83 std::condition_variable cv;
84
85 // Entry point for std::thread
86 void entryDelayedTSFN(int threadId) {
87 std::unique_lock<std::mutex> lk(mtx);
88 cv.wait(lk, [this] { return this->tsfn != nullptr; });
89 tsfn.BlockingCall([=](Napi::Env env, Function callback) {
90 callback.Call({Number::New(env, static_cast<double>(threadId))});
91 });
92 tsfn.Release();
93 };
94};
95
96struct TestDataDelayed {
97 TestDataDelayed(Promise::Deferred&& deferred)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected