/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
test-logs
src/Npgsql/UnpooledDataSource.cs
48 строк
1 KB
Nino Floris
Move TryTrackDataSource to constructor and enable metrics more accurately (#6329)
19 ноя 2025, 19:56
Не верифицирован
19 ноя 2025, 19:56
fc0a675
Код
Авторство
О чём код?
using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; using Npgsql.Internal; using Npgsql.Util; namespace Npgsql; sealed class UnpooledDataSource(NpgsqlConnectionStringBuilder settings, NpgsqlDataSourceConfiguration dataSourceConfig) : NpgsqlDataSource(settings, dataSourceConfig, reportMetrics: true) { volatile int _numConnectors; internal override (int Total, int Idle, int Busy) Statistics => (_numConnectors, 0, _numConnectors); internal override bool OwnsConnectors => true; internal override async ValueTask<NpgsqlConnector> Get( NpgsqlConnection conn, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken) { CheckDisposed(); var connector = new NpgsqlConnector(this, conn); await connector.Open(timeout, async, cancellationToken).ConfigureAwait(false); Interlocked.Increment(ref _numConnectors); return connector; } internal override bool TryGetIdleConnector([NotNullWhen(true)] out NpgsqlConnector? connector) { connector = null; return false; } internal override ValueTask<NpgsqlConnector?> OpenNewConnector( NpgsqlConnection conn, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken) => new((NpgsqlConnector?)null); internal override void Return(NpgsqlConnector connector) { Interlocked.Decrement(ref _numConnectors); connector.Close(); } public override void Clear() { } }