mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 02:05:34 +08:00
Resolve a small race condition on removing bot behaviours that might leave previous behaviour active
Also closes behaviours on disconnect instead of interrupt, though this makes no practical difference. If existing behaviour is None, other added behavious will not take affect until None is removed (as this is an infinite wait until interrupted).
This commit is contained in:
@@ -214,10 +214,11 @@ namespace pCampBot
|
||||
if (!updatedBehaviours.TryGetValue(abbreviatedName, out behaviour))
|
||||
return false;
|
||||
|
||||
behaviour.Close();
|
||||
updatedBehaviours.Remove(abbreviatedName);
|
||||
Behaviours = updatedBehaviours;
|
||||
|
||||
behaviour.Close();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -299,7 +300,7 @@ namespace pCampBot
|
||||
ConnectionState = ConnectionState.Disconnecting;
|
||||
|
||||
foreach (IBehaviour behaviour in Behaviours.Values)
|
||||
behaviour.Interrupt();
|
||||
behaviour.Close();
|
||||
|
||||
Client.Network.Logout();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user