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); 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) foreach (var kind in objectKind)
{ {
ApplyCustomizationData(kind); ApplyCustomizationData(kind);

View File

@@ -198,30 +198,6 @@ public class OnlinePlayerManager : IDisposable
return; 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(); cachedPlayer.DisposePlayer();
_onlineCachedPlayers.TryRemove(characterHash, out _); _onlineCachedPlayers.TryRemove(characterHash, out _);
} }

View File

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

View File

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