Skip to content

Commit

Permalink
Faster code.
Browse files Browse the repository at this point in the history
  • Loading branch information
cincuranet committed Oct 5, 2018
1 parent b964f21 commit ca896e7
Showing 1 changed file with 4 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,16 +124,16 @@ public void CleanupPool()
CheckDisposedImpl();

var now = GetTicks();
var available = _available.ToArray();
var available = _available.ToList();
if (available.Count() <= _connectionString.MinPoolSize)
return;
var keep = available.Where(x => ConnectionPoolLifetimeHelper.IsAlive(_connectionString.ConnectionLifetime, x.Created, now)).ToArray();
var keep = available.Where(x => ConnectionPoolLifetimeHelper.IsAlive(_connectionString.ConnectionLifetime, x.Created, now)).ToList();
var keepCount = keep.Count();
if (keepCount < _connectionString.MinPoolSize)
{
keep = keep.Concat(available.Except(keep).OrderByDescending(x => x.Created).Take(_connectionString.MinPoolSize - keepCount)).ToArray();
keep = keep.Concat(available.Except(keep).OrderByDescending(x => x.Created).Take(_connectionString.MinPoolSize - keepCount)).ToList();
}
var release = available.Except(keep).ToArray();
var release = available.Except(keep).ToList();
release.AsParallel().ForAll(x => x.Dispose());
_available = new Stack<Item>(keep);
}
Expand Down

0 comments on commit ca896e7

Please sign in to comment.