Fixed unhandled exception in SingleInstanceManager

This commit is contained in:
Jaex 2024-03-11 05:11:00 +03:00
parent e6a2ac818e
commit c3b27567dc
3 changed files with 19 additions and 11 deletions

View file

@ -68,7 +68,7 @@ protected void OnMessageAdded(string message)
MessageAdded?.Invoke(message); MessageAdded?.Invoke(message);
} }
private void ProcessMessageQueue() public void ProcessMessageQueue()
{ {
lock (loggerLock) lock (loggerLock)
{ {

View file

@ -69,6 +69,7 @@ public SingleInstanceManager(bool isSingleInstance, string[] args)
{ {
RedirectArgumentsToFirstInstance(args); RedirectArgumentsToFirstInstance(args);
DebugHelper.Logger.ProcessMessageQueue();
Environment.Exit(0); Environment.Exit(0);
} }
} }
@ -125,12 +126,14 @@ private async Task ListenForConnectionsAsync()
} }
catch (Exception e) catch (Exception e)
{ {
DebugHelper.WriteLine("Error in named pipe communication: {0}", e.Message); DebugHelper.WriteException(e);
} }
} }
} }
private void RedirectArgumentsToFirstInstance(string[] args) private void RedirectArgumentsToFirstInstance(string[] args)
{
try
{ {
using (NamedPipeClientStream clientPipe = new NamedPipeClientStream(".", PipeName, PipeDirection.Out)) using (NamedPipeClientStream clientPipe = new NamedPipeClientStream(".", PipeName, PipeDirection.Out))
{ {
@ -147,6 +150,11 @@ private void RedirectArgumentsToFirstInstance(string[] args)
} }
} }
} }
catch (Exception e)
{
DebugHelper.WriteException(e);
}
}
public void Dispose() public void Dispose()
{ {

View file

@ -377,13 +377,13 @@ public static void CloseSequence()
{ {
closeSequenceStarted = true; closeSequenceStarted = true;
DebugHelper.Logger.AsyncWrite = false;
DebugHelper.WriteLine("ShareX closing."); DebugHelper.WriteLine("ShareX closing.");
if (WatchFolderManager != null) WatchFolderManager.Dispose(); WatchFolderManager?.Dispose();
SettingManager.SaveAllSettings(); SettingManager.SaveAllSettings();
DebugHelper.WriteLine("ShareX closed."); DebugHelper.WriteLine("ShareX closed.");
DebugHelper.Logger.ProcessMessageQueue();
} }
} }