| 182 | |
| 183 | protected: |
| 184 | void Execute(const ExecutionProgress& progress) override { |
| 185 | if (_times < 0) { |
| 186 | SetError("test error"); |
| 187 | } |
| 188 | ProgressData data{0}; |
| 189 | |
| 190 | for (int32_t idx = 0; idx < _times; idx++) { |
| 191 | data.progress = idx; |
| 192 | progress.Send(&data, 1); |
| 193 | |
| 194 | { |
| 195 | std::unique_lock<std::mutex> lk(_cvm); |
| 196 | _cv.wait(lk, [this] { return dataSent; }); |
| 197 | dataSent = false; |
| 198 | } |
| 199 | } |
| 200 | } |
| 201 | |
| 202 | void OnProgress(const ProgressData* data, size_t /* count */) override { |
| 203 | Napi::Env env = Env(); |