public void Return(PGSession session) { for (var i = 0; i < _sessions.Length; i++) { if (Interlocked.CompareExchange(ref _sessions[i], session, null) == null) { return; } } session.Dispose(); }
public async Task Dispose_when_open() { using (var session = new PGSession(Host, Port, Database, User, Password)) { await session.StartAsync(); Assert.True(session.IsConnected); session.Dispose(); Assert.Throws <ObjectDisposedException>(() => session.IsConnected); } }
public override void Close() { _session?.Dispose(); _session = null; }