Allow "show bots" pCampbot console command to quickly report status by not locking entire bot list for almost 100% of connection time.
parent
588a3b91c5
commit
9fe282f902
|
@ -333,33 +333,35 @@ namespace pCampBot
|
|||
MainConsole.Instance.OutputFormat("[BOT MANAGER]: BotsSendAgentUpdates is {0}", InitBotSendAgentUpdates);
|
||||
MainConsole.Instance.OutputFormat("[BOT MANAGER]: InitBotRequestObjectTextures is {0}", InitBotRequestObjectTextures);
|
||||
|
||||
int connectedBots = 0;
|
||||
List<Bot> botsToConnect = new List<Bot>();
|
||||
|
||||
for (int i = 0; i < m_bots.Count; i++)
|
||||
lock (m_bots)
|
||||
{
|
||||
lock (m_bots)
|
||||
foreach (Bot bot in m_bots)
|
||||
{
|
||||
if (DisconnectingBots)
|
||||
{
|
||||
MainConsole.Instance.Output(
|
||||
"[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection");
|
||||
if (bot.ConnectionState == ConnectionState.Disconnected)
|
||||
botsToConnect.Add(bot);
|
||||
|
||||
if (botsToConnect.Count >= botCount)
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_bots[i].ConnectionState == ConnectionState.Disconnected)
|
||||
{
|
||||
m_bots[i].Connect();
|
||||
connectedBots++;
|
||||
|
||||
if (connectedBots >= botCount)
|
||||
break;
|
||||
|
||||
// Stagger logins
|
||||
Thread.Sleep(LoginDelay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Bot bot in botsToConnect)
|
||||
{
|
||||
if (DisconnectingBots)
|
||||
{
|
||||
MainConsole.Instance.Output(
|
||||
"[BOT MANAGER]: Aborting bot connection due to user-initiated disconnection");
|
||||
break;
|
||||
}
|
||||
|
||||
bot.Connect();
|
||||
|
||||
// Stagger logins
|
||||
Thread.Sleep(LoginDelay);
|
||||
}
|
||||
|
||||
ConnectingBots = false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue