Hi all! I've embedded V8 (7.4.288.11 from NuGet) into an C# ASP.NET application. There is some glue code that initializes V8 (As per the hello-world sample):
bool result = v8::V8::InitializeICUDefaultLocation(path); v8::V8::InitializeExternalStartupData(path); platform = v8::platform::NewDefaultPlatform(); v8::V8::InitializePlatform(platform.get()); v8::V8::Initialize(); This works just fine when called just once. Sometimes, the Initialize code ends up being called a second time in the same process. (In this case because the AppDomain recycles but the process stays the same). When executing this code the second time, a crash occurs when v8::V8::InitializePlatform(platform.get()); is called the second time: Exception #: 0X80000003 Stack: v8_libbase!v8::base::OS::Abort+0x10 v8_libbase!V8_Fatal+0xf0 v8!v8::internal::wasm::WasmEngine::InitializeOncePerProcess+0x14a 0x7fe`99bca45e 0x7fe`99bc8648 clr!LogHelp_LogAssert+0x1f93 {redacted} My understanding is that calling Initialize the second time should effectively be a no-op. Am I wrong? Shutdown is very well documented re: you can't re initialize after shutting down, but there isn't much about calling Initialize multiple time. The name InitializeOncePerProcess to me implies that my assumption is correct. My workaround solution is to create a singleton in my glue code that keeps track of the state and causes Initialize to be a no-op in my code. Some background: This was a safe operation on a (very old) version of V8 (3.16.14) I'm working on upgrading it. Running in ASP.NET on IIS 10. On an AppDomain recycle (not app pool), The managed assemblies are unloaded and reloaded (but not the unmanaged ones, thus calling myV8::Initialize). Thanks! -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.