/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v6.0.12
src/Npgsql/UnpooledConnectorSource.cs
49 строк
1 KB
Nikita Kazmin
Fix closing unpooled connection with transaction scope (#4964)
02 мар 2023, 16:43
02 мар 2023, 16:43
2824cdd
Код
Авторство
О чём код?
using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; using System.Transactions; using Npgsql.Internal; using Npgsql.Util; namespace Npgsql; sealed class UnpooledConnectorSource : ConnectorSource { public UnpooledConnectorSource(NpgsqlConnectionStringBuilder settings, string connString) : base(settings, connString) { } 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) { 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() {} }