stop processing framework queue while in gpose

This commit is contained in:
Stanley Dimant
2022-09-09 14:21:20 +02:00
parent e5f7c2f72d
commit 3decdd55e9
4 changed files with 1 additions and 37 deletions

View File

@@ -163,16 +163,6 @@ public class CachedPlayer
ApplyBaseData(moddedPaths);
}
if (_dalamudUtil.IsInGpose)
{
Logger.Verbose("Player is in GPose, waiting");
while (_dalamudUtil.IsInGpose)
{
await Task.Delay(TimeSpan.FromSeconds(0.5));
downloadToken.ThrowIfCancellationRequested();
}
}
foreach (var kind in objectKind)
{
ApplyCustomizationData(kind);

View File

@@ -198,30 +198,6 @@ public class OnlinePlayerManager : IDisposable
return;
}
if (_dalamudUtil.IsInGpose)
{
_playerTokenDisposal.TryGetValue(cachedPlayer, out var cancellationTokenSource);
cancellationTokenSource?.Cancel();
cachedPlayer.IsVisible = false;
_playerTokenDisposal[cachedPlayer] = new CancellationTokenSource();
cancellationTokenSource = _playerTokenDisposal[cachedPlayer];
var token = cancellationTokenSource.Token;
Task.Run(async () =>
{
Logger.Verbose("Cannot dispose Player, in GPose");
while (_dalamudUtil.IsInGpose)
{
await Task.Delay(TimeSpan.FromSeconds(0.5));
if (token.IsCancellationRequested) return;
}
cachedPlayer.DisposePlayer();
_onlineCachedPlayers.TryRemove(characterHash, out _);
}, token);
return;
}
cachedPlayer.DisposePlayer();
_onlineCachedPlayers.TryRemove(characterHash, out _);
}

View File

@@ -165,8 +165,6 @@ namespace MareSynchronos.Managers
private void OnPlayerOrAttachedObjectsChanged()
{
if (_dalamudUtil.IsInGpose) return;
var unprocessedObjects = playerRelatedObjects.Where(c => c.HasUnprocessedUpdate).ToList();
foreach (var unprocessedObject in unprocessedObjects)
{

View File

@@ -66,7 +66,7 @@ namespace MareSynchronos.Utils
private void FrameworkOnUpdate(Framework framework)
{
if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51])
if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51] || IsInGpose)
{
return;
}