You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
The cache is transactional, and is designed not to lose data if the process is terminated. The cache index and bulk store are kept separate, and blocks in the bulk store are not overwritten until the index has been flushed. The age of items is tracked via "generations". An 8-bit generation counter is incremented once a certain size of items has been added to the cache, and older entries in the cache can be trimmed periodically by calling TrimAsync(). Since blocks of memory are allocated via memory mapped files and references are not visible to the garbage collector, clients can create locks over the cache which prevents trim operations from running. [CL 17515095 by Ben Marsh in ue5-main branch]