neon-sprawl/server/NeonSprawl.Server/Game/PositionState/NpgsqlDataSourceShutdownHos...

16 lines
666 B
C#

using Npgsql;
namespace NeonSprawl.Server.Game.PositionState;
/// <summary>Disposes the shared <see cref="NpgsqlDataSource"/> when the host stops. Registered before <see cref="PostgresDevPlayerSeedHostedService"/> so <see cref="IHostedService.StopAsync"/> runs last (NEO-13).</summary>
internal sealed class NpgsqlDataSourceShutdownHostedService(NpgsqlDataSource dataSource) : IHostedService
{
public Task StartAsync(CancellationToken cancellationToken) => Task.CompletedTask;
public async Task StopAsync(CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
await dataSource.DisposeAsync();
}
}