refactor(streaming): own landblock publication transactions
This commit is contained in:
parent
4001251064
commit
4f965d0699
5 changed files with 1301 additions and 122 deletions
|
|
@ -4608,7 +4608,26 @@ public sealed class GameWindow : IDisposable, ILiveAnimationPresentationContext
|
|||
long fdT0 = _frameDiag ? System.Diagnostics.Stopwatch.GetTimestamp() : 0L;
|
||||
if (_frameDiag)
|
||||
_applyLockWaitAccumTicks += System.Diagnostics.Stopwatch.GetTimestamp() - fdT0;
|
||||
ApplyLoadedTerrainLocked(build, meshData);
|
||||
try
|
||||
{
|
||||
ApplyLoadedTerrainLocked(build, meshData);
|
||||
}
|
||||
catch (AcDream.App.Streaming.StreamingMutationException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
// This legacy body spans multiple concrete owners and cannot yet
|
||||
// identify an exact failed suffix. Conservatively report that a
|
||||
// prefix may have committed so the transaction coordinator never
|
||||
// replays terrain/cells/collision/lights/plugin events. Slice-5
|
||||
// checkpoints C-E replace this wrapper with per-owner receipts.
|
||||
throw new AcDream.App.Streaming.StreamingMutationException(
|
||||
$"Landblock 0x{lb.LandblockId:X8} presentation failed after an unknown commit point.",
|
||||
mutationCommitted: true,
|
||||
error);
|
||||
}
|
||||
if (_frameDiag)
|
||||
{
|
||||
_applyAccumTicks += System.Diagnostics.Stopwatch.GetTimestamp() - fdT0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue