void GetCPUWorker::HandleOKCallback()

in src/cpu_worker.cc [51:76]


void GetCPUWorker::HandleOKCallback() {
  Nan::HandleScope scope;
  v8::Local<v8::Array> process_array = v8::Local<v8::Array>::Cast(GetFromPersistent("processes"));
  uint32_t count = process_array->Length();
  // Transfer results into actual result object
  v8::Local<v8::Array> result = Nan::New<v8::Array>(count);
  for (uint32_t i = 0; i < count; i++) {
    v8::Local<v8::Value> process;
    v8::MaybeLocal<v8::Value> maybe_process = Nan::Get(process_array, Nan::New<v8::Integer>(i));
    if (!maybe_process.ToLocal(&process))
      continue;

    v8::Local<v8::Object> object = Nan::To<v8::Object>(process).ToLocalChecked();

    if (!std::isnan(cpu_info[i].cpu)) {
      Nan::Set(object, Nan::New<v8::String>("cpu").ToLocalChecked(),
                Nan::New<v8::Number>(cpu_info[i].cpu));
    }

    Nan::Set(result, i, Nan::New<v8::Value>(object));
  }

  v8::Local<v8::Value> argv[] = { result };
  Nan::AsyncResource resource("windows-process-tree:addon.HandleOKCallback");
  callback->Call(1, argv, &resource);
}