diff options
author | Diva Canto | 2009-08-11 16:47:36 -0700 |
---|---|---|
committer | Diva Canto | 2009-08-11 16:47:36 -0700 |
commit | 10d923dbeaa3eac8d085ab14bb8fab4a71e1fd29 (patch) | |
tree | 9aedb7a830e3bf2c3638e010c21712851cc279b1 | |
parent | Some more hammering on the head of the obsolete rest inventory handlers, just... (diff) | |
download | opensim-SC_OLD-10d923dbeaa3eac8d085ab14bb8fab4a71e1fd29.zip opensim-SC_OLD-10d923dbeaa3eac8d085ab14bb8fab4a71e1fd29.tar.gz opensim-SC_OLD-10d923dbeaa3eac8d085ab14bb8fab4a71e1fd29.tar.bz2 opensim-SC_OLD-10d923dbeaa3eac8d085ab14bb8fab4a71e1fd29.tar.xz |
Fixes a race condition in EQ processing that was making EQs pop up again upon client close.
Commented remote call on GetSystemFolders again, so that it's not live yet.
4 files changed, 39 insertions, 35 deletions
diff --git a/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs index 56545d6..0c6900d 100644 --- a/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs +++ b/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs | |||
@@ -210,7 +210,7 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities | |||
210 | 210 | ||
211 | public void SetChildrenSeed(UUID agentID, Dictionary<ulong, string> seeds) | 211 | public void SetChildrenSeed(UUID agentID, Dictionary<ulong, string> seeds) |
212 | { | 212 | { |
213 | //m_log.Debug(" !!! Setting child seeds in {0} to {1}", RegionInfo.RegionName, value.Count); | 213 | //m_log.DebugFormat(" !!! Setting child seeds in {0} to {1}", m_scene.RegionInfo.RegionName, seeds.Count); |
214 | childrenSeeds[agentID] = seeds; | 214 | childrenSeeds[agentID] = seeds; |
215 | } | 215 | } |
216 | 216 | ||
diff --git a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs index 8230401..34d46a0 100644 --- a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs | |||
@@ -328,15 +328,19 @@ namespace OpenSim.Region.CoreModules.Framework.EventQueue | |||
328 | 328 | ||
329 | public bool HasEvents(UUID agentID) | 329 | public bool HasEvents(UUID agentID) |
330 | { | 330 | { |
331 | Queue<OSD> queue = TryGetQueue(agentID); | 331 | // Don't use this, because of race conditions at agent closing time |
332 | lock (queue) | 332 | //Queue<OSD> queue = TryGetQueue(agentID); |
333 | { | ||
334 | if (queue.Count > 0) | ||
335 | return true; | ||
336 | else | ||
337 | return false; | ||
338 | } | ||
339 | 333 | ||
334 | Queue<OSD> queue = GetQueue(agentID); | ||
335 | if (queue != null) | ||
336 | lock (queue) | ||
337 | { | ||
338 | if (queue.Count > 0) | ||
339 | return true; | ||
340 | else | ||
341 | return false; | ||
342 | } | ||
343 | return false; | ||
340 | } | 344 | } |
341 | 345 | ||
342 | public Hashtable GetEvents(UUID pAgentId, string request) | 346 | public Hashtable GetEvents(UUID pAgentId, string request) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 4f2b6ec..0140faa 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -1319,17 +1319,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
1319 | return m_commsProvider.GridService.RequestNamedRegions(name, maxNumber); | 1319 | return m_commsProvider.GridService.RequestNamedRegions(name, maxNumber); |
1320 | } | 1320 | } |
1321 | 1321 | ||
1322 | // private void Dump(string msg, List<ulong> handles) | 1322 | //private void Dump(string msg, List<ulong> handles) |
1323 | // { | 1323 | //{ |
1324 | // m_log.Info"-------------- HANDLE DUMP ({0}) ---------", msg); | 1324 | // m_log.InfoFormat("-------------- HANDLE DUMP ({0}) ---------", msg); |
1325 | // foreach (ulong handle in handles) | 1325 | // foreach (ulong handle in handles) |
1326 | // { | 1326 | // { |
1327 | // uint x, y; | 1327 | // uint x, y; |
1328 | // Utils.LongToUInts(handle, out x, out y); | 1328 | // Utils.LongToUInts(handle, out x, out y); |
1329 | // x = x / Constants.RegionSize; | 1329 | // x = x / Constants.RegionSize; |
1330 | // y = y / Constants.RegionSize; | 1330 | // y = y / Constants.RegionSize; |
1331 | // m_log.Info("({0}, {1})", x, y); | 1331 | // m_log.InfoFormat("({0}, {1})", x, y); |
1332 | // } | 1332 | // } |
1333 | // } | 1333 | //} |
1334 | } | 1334 | } |
1335 | } | 1335 | } |
diff --git a/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs b/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs index 2244a7e..e41b427 100644 --- a/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/InventoryServiceConnector.cs | |||
@@ -164,20 +164,20 @@ namespace OpenSim.Services.Connectors | |||
164 | public Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(string userID, UUID sessionID) | 164 | public Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(string userID, UUID sessionID) |
165 | { | 165 | { |
166 | // !!! Not just yet. | 166 | // !!! Not just yet. |
167 | try | 167 | //try |
168 | { | 168 | //{ |
169 | List<InventoryFolderBase> folders = SynchronousRestSessionObjectPoster<Guid, List<InventoryFolderBase>>.BeginPostObject( | 169 | // List<InventoryFolderBase> folders = SynchronousRestSessionObjectPoster<Guid, List<InventoryFolderBase>>.BeginPostObject( |
170 | "POST", m_ServerURI + "/SystemFolders/", new Guid(userID), sessionID.ToString(), userID.ToString()); | 170 | // "POST", m_ServerURI + "/SystemFolders/", new Guid(userID), sessionID.ToString(), userID.ToString()); |
171 | Dictionary<AssetType, InventoryFolderBase> dFolders = new Dictionary<AssetType, InventoryFolderBase>(); | 171 | // Dictionary<AssetType, InventoryFolderBase> dFolders = new Dictionary<AssetType, InventoryFolderBase>(); |
172 | foreach (InventoryFolderBase f in folders) | 172 | // foreach (InventoryFolderBase f in folders) |
173 | dFolders[(AssetType)f.Type] = f; | 173 | // dFolders[(AssetType)f.Type] = f; |
174 | return dFolders; | 174 | // return dFolders; |
175 | } | 175 | //} |
176 | catch (Exception e) | 176 | //catch (Exception e) |
177 | { | 177 | //{ |
178 | m_log.ErrorFormat("[INVENTORY CONNECTOR]: GetSystemFolders operation failed, {0} {1}", | 178 | // m_log.ErrorFormat("[INVENTORY CONNECTOR]: GetSystemFolders operation failed, {0} {1}", |
179 | e.Source, e.Message); | 179 | // e.Source, e.Message); |
180 | } | 180 | //} |
181 | 181 | ||
182 | return new Dictionary<AssetType, InventoryFolderBase>(); | 182 | return new Dictionary<AssetType, InventoryFolderBase>(); |
183 | } | 183 | } |