FHttpSharedData is no longer constructed as a function-local static because that makes shutdown more difficult to handle correctly. The cache store now owns the shared data and destroys it when it shuts down.
Includes greater encapsulation of the shared data and migration from FRunnable/FRunnableThread to FThread.
#preflight 627aad2bc42338be65272366
#rb Zousar.Shaker
#rnx
[CL 20138109 by Devin Doucette in ue5-main branch]
#fyi Zousar.Shaker
Original CL Desc
-----------------------------------------------------------------
Limit concurrent connections when using the Curl multi API for Jupiter DDC operations.
#rb devin.doucette
#preflight 627040b4645c64f3a25a14ca
#preflight 62716d2c9d6c2f8f5b2558f2
[CL 20057204 by Zousar Shaker in ue5-main branch]
- Reading files from the Game Thread now launches a task to check and update the modification time, which approximately halves the latency of these reads.
- Writing files now only asks to delete the temporary file upon failure, as it added unnecessary latency before by trying to delete it after it was renamed.
#preflight 6272d5b21f37fd32b0f07652
#rb Zousar.Shaker
[CL 20048278 by Devin Doucette in ue5-main branch]
- Added deletion of empty directories.
- Applied the rate limit to directory scans.
- Reduced the default scan rate by a factor of 10.
#preflight 626c3a8b0f5f22f922511514
#rb Zousar.Shaker
[CL 19984889 by Devin Doucette in ue5-main branch]
Without using StopGetStore, get hits on the in-flight cache would propagate as puts to subsequent nodes in the hierarchy. Since the in-flight cache is only used as temporary storage while a put is in flight, this caused duplicates of the in-flight puts, which manifests as move collision log spam from the file system cache store.
#preflight 625d772d691f49969ea93249
#rb Zousar.Shaker
#rnx
[CL 19785647 by Devin Doucette in ue5-main branch]
Without using StopStore, get hits on the in-flight cache would propagate as puts to subsequent nodes in the hierarchy. Since the in-flight cache is only used as temporary storage while a put is in flight, this caused duplicates of the in-flight puts, which manifests as move collision log spam from the file system cache store.
#preflight 625835d97f628a9018d8acf6
#rb Zousar.Shaker
#rnx
[CL 19757142 by Devin Doucette in ue5-main branch]
Except when replacing an existing value, load the existing value and check for determinism, and replace the existing value in the presence of an invalid value or non-deterministic value with missing content. This resolves move collisions being reported when a value existed without its content.
#preflight 62582c69946114248db5561f
#rb Zousar.Shaker
#rnx
[CL 19756384 by Devin Doucette in ue5-main branch]
The wrong response status was being checked, and caused subsequent nodes to be skipped even if the StopStore node did not contain the data, if any previous node contained the data.
#preflight 62582d67946114248db62d58
#rb Zousar.Shaker
#rnx
[CL 19756375 by Devin Doucette in ue5-main branch]