Task instance created for each new std::thread
| 74 | |
| 75 | // Task instance created for each new std::thread |
| 76 | class 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 | |
| 96 | struct TestDataDelayed { |
| 97 | TestDataDelayed(Promise::Deferred&& deferred) |
nothing calls this directly
no outgoing calls
no test coverage detected