mirror of https://gitee.com/bigwinds/arangodb
slightly optimize context destruction
This commit is contained in:
parent
ae75259542
commit
bdac806e49
|
@ -176,13 +176,19 @@ v8::Isolate* V8PlatformFeature::createIsolate() {
|
||||||
isolate->AddGCEpilogueCallback(gcEpilogueCallback);
|
isolate->AddGCEpilogueCallback(gcEpilogueCallback);
|
||||||
|
|
||||||
auto data = std::make_unique<IsolateData>();
|
auto data = std::make_unique<IsolateData>();
|
||||||
|
isolate->SetData(V8_INFO, data.get());
|
||||||
|
|
||||||
{
|
{
|
||||||
MUTEX_LOCKER(guard, _lock);
|
MUTEX_LOCKER(guard, _lock);
|
||||||
_isolateData.emplace(isolate, std::move(data));
|
try {
|
||||||
|
_isolateData.emplace(isolate, std::move(data));
|
||||||
|
} catch (...) {
|
||||||
|
isolate->SetData(V8_INFO, nullptr);
|
||||||
|
isolate->Dispose();
|
||||||
|
throw;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
isolate->SetData(V8_INFO, _isolateData.back().get());
|
|
||||||
|
|
||||||
return isolate;
|
return isolate;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue