internal static void CloseConnections(ILog log)
{
List<AmnesiaDbConnection> oldConnections = new List<AmnesiaDbConnection>();
lock (connections)
{
foreach (AmnesiaDbConnection c in connections.Values)
oldConnections.Add(c);
connections.Clear();
}
foreach (AmnesiaDbConnection connection in oldConnections)
{
try
{
using (LockConnection(connection))
{
if (connection.Real.State == ConnectionState.Open)
{
log.Write("Closing: " + connection.Real.ConnectionString);
connection.Real.Close();
}
else
{
log.Write("Already closed: " + connection.Real.ConnectionString);
}
}
}
catch { }
}
}