/// <summary> /// Initialize GlobalMemoryRegion. /// </summary> /// <param name="globalMemoryRegion"></param> /// <returns></returns> public static GlobalMemoryRegion InitializeMemoryRegion(this GlobalMemoryRegion globalMemoryRegion) { // Initialize properties. // globalMemoryRegion.GlobalMemoryRegionIndex = 1; globalMemoryRegion.RegisteredSettingsAssemblyCount.Store(1); MemoryRegion memoryHeader = globalMemoryRegion.MemoryHeader; MemoryRegionId memoryRegionId = memoryHeader.MemoryRegionId; memoryRegionId.Type = MemoryRegionType.Global; SharedConfigDictionary sharedConfigDictionary = globalMemoryRegion.SharedConfigDictionary; ArenaAllocator allocator = sharedConfigDictionary.Allocator; // Initialize memory allocator. // allocator.InitializeArenaAllocator(memoryHeader, (int)globalMemoryRegion.CodegenTypeSize()); // Initialize shared config dictionary. // sharedConfigDictionary.InitializeSharedConfigDictionary(); return(globalMemoryRegion); }
/// <summary> /// Initialize SharedConfigMemoryRegion. /// </summary> /// <param name="sharedConfigMemoryRegion"></param> /// <returns></returns> public static SharedConfigMemoryRegion InitializeMemoryRegion(this SharedConfigMemoryRegion sharedConfigMemoryRegion) { SharedConfigDictionary sharedConfigDictionary = sharedConfigMemoryRegion.SharedConfigDictionary; ArenaAllocator allocator = sharedConfigDictionary.Allocator; MemoryRegion memoryHeader = sharedConfigMemoryRegion.MemoryHeader; MemoryRegionId memoryRegionId = memoryHeader.MemoryRegionId; memoryRegionId.Type = MemoryRegionType.SharedConfig; // Initialize memory allocator. // allocator.InitializeArenaAllocator(sharedConfigMemoryRegion.MemoryHeader, (int)sharedConfigMemoryRegion.CodegenTypeSize()); // Initialize shared config dictionary. // sharedConfigDictionary.InitializeSharedConfigDictionary(); return(sharedConfigMemoryRegion); }