/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v7.0.10
src/Npgsql/UnpooledDataSource.cs
51 строка
2 KB
Nikita Kazmin
Fix closing unpooled connection with transaction scope (#4964)
02 мар 2023, 16:11
02 мар 2023, 16:11
5940643
Код
Авторство
О чём код?
using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; using System.Transactions; using Npgsql.Internal; using Npgsql.Util; namespace Npgsql; sealed class UnpooledDataSource : NpgsqlDataSource { public UnpooledDataSource(NpgsqlConnectionStringBuilder settings, NpgsqlDataSourceConfiguration dataSourceConfig) : base(settings, dataSourceConfig) { } 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); 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(); } internal override void Clear() {} }