私の最終的な目標はこの問題を解決することですが、かなり基本的なことで行き詰まっています。
私のC++モジュール全体は、基本的に次のとおりです。
void AsyncWork(void *arg) {
Isolate* isolate = Isolate::GetCurrent(); // isolate is NULL
if (isolate != NULL) {
HandleScope scope(isolate);
}
else {
printf("isolate is null\n");
return;
}
// ...
}
void testAsync(const FunctionCallbackInfo<Value>& args) {
uv_thread_t id;
int data = 10;
uv_thread_create(&id, AsyncWork, &data);
}
void init(Handle<Object> target) {
NODE_SET_METHOD(target, "testAsync", testAsync);
}
NODE_MODULE(MyCppModule, init);
AsyncWorkisolate
を呼び出した後に NULL になるのはなぜですか?Isolate::GetCurrent()