public static int CleanupDeadProtocols()
{
var result = DeadProtocols.Count;
foreach (var deadProtocol in DeadProtocols.Keys.ToArray())
{
DeadProtocols[deadProtocol].Dispose();
if (DeadProtocols[deadProtocol] is IManage)
ManageProtocols.Remove(DeadProtocols[deadProtocol] as IManage);
DeadProtocols.Remove(deadProtocol);
}
return result;
}