public static void Initialize(IJitMemoryAllocator allocator) { if (_initialized) { return; } lock (_lock) { if (_initialized) { return; } _jitRegion = new ReservedRegion(allocator, CacheSize); _cacheAllocator = new CacheMemoryAllocator(CacheSize); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { JitUnwindWindows.InstallFunctionTableHandler(_jitRegion.Pointer, CacheSize, _jitRegion.Pointer + Allocate(PageSize)); } _initialized = true; } }
public static void Initialize(IJitMemoryAllocator allocator) { if (_initialized) { return; } lock (_lock) { if (_initialized) { return; } _jitRegion = new ReservedRegion(allocator, CacheSize); _cacheAllocator = new CacheMemoryAllocator(CacheSize); if (OperatingSystem.IsWindows()) { JitUnwindWindows.InstallFunctionTableHandler(_jitRegion.Pointer, CacheSize, _jitRegion.Pointer + Allocate(PageSize)); } _initialized = true; } }