do not use actionqueue for redraws

This commit is contained in:
Stanley Dimant
2023-03-20 11:05:15 +01:00
parent e5698c4c0c
commit 849ba51ce2
2 changed files with 12 additions and 2 deletions

View File

@@ -605,12 +605,12 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
_penumbraRedrawRequests[obj.Address] = !fireAndForget;
ActionQueue.Enqueue(action);
try
{
if (!fireAndForget)
{
await _dalamudUtil.RunOnFrameworkThread(action);
var disposeToken = _disposalCts.Token;
var combinedToken = CancellationTokenSource.CreateLinkedTokenSource(disposeToken, token).Token;
@@ -619,6 +619,10 @@ public sealed class IpcManager : DisposableMediatorSubscriberBase
if (!combinedToken.IsCancellationRequested)
await _dalamudUtil.WaitWhileCharacterIsDrawing(logger, obj, applicationId, 30000, combinedToken).ConfigureAwait(false);
}
else
{
_ = _dalamudUtil.RunOnFrameworkThread(action);
}
}
finally
{

View File

@@ -209,6 +209,12 @@ public class ServerConfigurationManager
internal void DeleteServer(ServerStorage selectedServer)
{
if (Array.IndexOf(_configService.Current.ServerStorage.ToArray(), selectedServer) <
_configService.Current.CurrentServer)
{
_configService.Current.CurrentServer--;
}
_configService.Current.ServerStorage.Remove(selectedServer);
Save();
}