From ea3f024b8a546608fce825d4aa9f165eaecfeed5 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Mon, 19 Aug 2013 21:25:17 +0100
Subject: refactor: start bot connection thread within BotManager rather than
 externally

---
 OpenSim/Tools/pCampBot/BotManager.cs | 27 ++++++++++++++++++++++++++-
 OpenSim/Tools/pCampBot/pCampBot.cs   |  5 +----
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs
index 2cbadef..fe6048a 100644
--- a/OpenSim/Tools/pCampBot/BotManager.cs
+++ b/OpenSim/Tools/pCampBot/BotManager.cs
@@ -52,6 +52,11 @@ namespace pCampBot
         public const int DefaultLoginDelay = 5000;
 
         /// <summary>
+        /// Is pCampbot in the process of connecting bots?
+        /// </summary>
+        public bool ConnectingBots { get; private set; }
+
+        /// <summary>
         /// Is pCampbot in the process of disconnecting bots?
         /// </summary>
         public bool DisconnectingBots { get; private set; }
@@ -219,7 +224,25 @@ namespace pCampBot
                 botcount, m_firstName, m_lastNameStem, m_password, m_loginUri, m_startUri, m_fromBotNumber, m_wearSetting, m_behaviourSwitches);
         }
 
-        private void ConnectBots(
+        private bool ConnectBots(
+            int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting,
+            HashSet<string> behaviourSwitches)
+        {
+            ConnectingBots = true;
+
+            Thread startBotThread 
+                = new Thread(
+                    o => ConnectBotsInternal(
+                        botcount, firstName, lastNameStem, password, loginUri, startUri, fromBotNumber, wearSetting,
+                        behaviourSwitches));
+
+            startBotThread.Name = "Bots connection thread";
+            startBotThread.Start();
+
+            return true;
+        }
+
+        private void ConnectBotsInternal(
             int botcount, string firstName, string lastNameStem, string password, string loginUri, string startUri, int fromBotNumber, string wearSetting,
             HashSet<string> behaviourSwitches)
         {
@@ -273,6 +296,8 @@ namespace pCampBot
                 // Stagger logins
                 Thread.Sleep(LoginDelay);
             }
+
+            ConnectingBots = false;
         }
 
         /// <summary>
diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs
index b02f917..e58b130 100644
--- a/OpenSim/Tools/pCampBot/pCampBot.cs
+++ b/OpenSim/Tools/pCampBot/pCampBot.cs
@@ -95,10 +95,7 @@ namespace pCampBot
 
                 int botcount = commandLineConfig.GetInt("botcount", 1);
 
-                //startup specified number of bots.  1 is the default
-                Thread startBotThread = new Thread(o => bm.dobotStartup(botcount, commandLineConfig));
-                startBotThread.Name = "Initial start bots thread";
-                startBotThread.Start();
+                bm.dobotStartup(botcount, commandLineConfig);
 
                 while (true)
                 {
-- 
cgit v1.1