ensure proper disposal of objects

This commit is contained in:
2025-12-17 00:15:23 -05:00
parent ea7ff0b051
commit 6e91d188fe

View File

@@ -10,14 +10,16 @@ using Serilog.Events;
var resetEvent = new ManualResetEvent(false);
using var tokenSource = new CancellationTokenSource();
Console.CancelKeyPress += (sender, eventArgs) =>
Console.CancelKeyPress += (_, eventArgs) =>
{
resetEvent?.Set();
tokenSource?.Cancel();
Log.Debug("Canceling with CancelKeyPress");
Dispose();
eventArgs.Cancel = true;
Log.CloseAndFlush();
};
AppDomain.CurrentDomain.ProcessExit += (_, _) => Dispose();
SetupLogging();
var config = LoadConfig();
@@ -30,6 +32,13 @@ resetEvent.WaitOne();
return;
void Dispose()
{
resetEvent?.Set();
tokenSource?.Cancel();
Log.CloseAndFlush();
}
static void SetupLogging()
{
var minLevel = (Environment.GetEnvironmentVariable("LOG_LEVEL") ?? "info").ToUpperInvariant() switch