diff options
author | Justin Clark-Casey (justincc) | 2014-11-04 00:55:48 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-11-25 23:23:10 +0000 |
commit | ec8d21c434a39f46518ee9cf9f5539d1790eacc0 (patch) | |
tree | 2aa340fb34c6f6e8e8f2e31c2034b5841307a7bf | |
parent | Add "show threadpool calls" command to show count of all labelled smartthread... (diff) | |
download | opensim-SC_OLD-ec8d21c434a39f46518ee9cf9f5539d1790eacc0.zip opensim-SC_OLD-ec8d21c434a39f46518ee9cf9f5539d1790eacc0.tar.gz opensim-SC_OLD-ec8d21c434a39f46518ee9cf9f5539d1790eacc0.tar.bz2 opensim-SC_OLD-ec8d21c434a39f46518ee9cf9f5539d1790eacc0.tar.xz |
Label all threadpool calls being made in core OpenSimulator. This is to add problem diagnosis.
"show threadpool calls" now also returns named (labelled), anonymous (unlabelled) and total call stats.
30 files changed, 103 insertions, 65 deletions
diff --git a/OpenSim/Framework/Communications/RestClient.cs b/OpenSim/Framework/Communications/RestClient.cs index de6fe30..72018e4 100644 --- a/OpenSim/Framework/Communications/RestClient.cs +++ b/OpenSim/Framework/Communications/RestClient.cs | |||
@@ -483,7 +483,7 @@ namespace OpenSim.Framework.Communications | |||
483 | /// In case, we are invoked asynchroneously this object will keep track of the state | 483 | /// In case, we are invoked asynchroneously this object will keep track of the state |
484 | /// </summary> | 484 | /// </summary> |
485 | AsyncResult<Stream> ar = new AsyncResult<Stream>(callback, state); | 485 | AsyncResult<Stream> ar = new AsyncResult<Stream>(callback, state); |
486 | Util.FireAndForget(RequestHelper, ar); | 486 | Util.FireAndForget(RequestHelper, ar, "RestClient.BeginRequest"); |
487 | return ar; | 487 | return ar; |
488 | } | 488 | } |
489 | 489 | ||
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs index 379e224..eb9fb8b 100644 --- a/OpenSim/Framework/Servers/ServerBase.cs +++ b/OpenSim/Framework/Servers/ServerBase.cs | |||
@@ -365,13 +365,21 @@ namespace OpenSim.Framework.Servers | |||
365 | { | 365 | { |
366 | List<KeyValuePair<string, int>> calls = Util.GetFireAndForgetCallsMade().ToList(); | 366 | List<KeyValuePair<string, int>> calls = Util.GetFireAndForgetCallsMade().ToList(); |
367 | calls.Sort((kvp1, kvp2) => kvp2.Value.CompareTo(kvp1.Value)); | 367 | calls.Sort((kvp1, kvp2) => kvp2.Value.CompareTo(kvp1.Value)); |
368 | int namedCallsMade = 0; | ||
368 | 369 | ||
369 | ConsoleDisplayList cdl = new ConsoleDisplayList(); | 370 | ConsoleDisplayList cdl = new ConsoleDisplayList(); |
370 | foreach (KeyValuePair<string, int> kvp in calls) | 371 | foreach (KeyValuePair<string, int> kvp in calls) |
371 | { | 372 | { |
372 | cdl.AddRow(kvp.Key, kvp.Value); | 373 | cdl.AddRow(kvp.Key, kvp.Value); |
374 | namedCallsMade += kvp.Value; | ||
373 | } | 375 | } |
374 | 376 | ||
377 | cdl.AddRow("TOTAL NAMED", namedCallsMade); | ||
378 | |||
379 | long allCallsMade = Util.TotalFireAndForgetCallsMade; | ||
380 | cdl.AddRow("TOTAL ANONYMOUS", allCallsMade - namedCallsMade); | ||
381 | cdl.AddRow("TOTAL ALL", allCallsMade); | ||
382 | |||
375 | MainConsole.Instance.Output(cdl.ToString()); | 383 | MainConsole.Instance.Output(cdl.ToString()); |
376 | } | 384 | } |
377 | 385 | ||
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 53bbb06..baad0b9 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -1928,11 +1928,6 @@ namespace OpenSim.Framework | |||
1928 | } | 1928 | } |
1929 | } | 1929 | } |
1930 | 1930 | ||
1931 | public static void FireAndForget(System.Threading.WaitCallback callback) | ||
1932 | { | ||
1933 | FireAndForget(callback, null, null); | ||
1934 | } | ||
1935 | |||
1936 | public static void InitThreadPool(int minThreads, int maxThreads) | 1931 | public static void InitThreadPool(int minThreads, int maxThreads) |
1937 | { | 1932 | { |
1938 | if (maxThreads < 2) | 1933 | if (maxThreads < 2) |
@@ -1977,8 +1972,7 @@ namespace OpenSim.Framework | |||
1977 | throw new NotImplementedException(); | 1972 | throw new NotImplementedException(); |
1978 | } | 1973 | } |
1979 | } | 1974 | } |
1980 | 1975 | ||
1981 | |||
1982 | /// <summary> | 1976 | /// <summary> |
1983 | /// Additional information about threads in the main thread pool. Used to time how long the | 1977 | /// Additional information about threads in the main thread pool. Used to time how long the |
1984 | /// thread has been running, and abort it if it has timed-out. | 1978 | /// thread has been running, and abort it if it has timed-out. |
@@ -2052,10 +2046,10 @@ namespace OpenSim.Framework | |||
2052 | } | 2046 | } |
2053 | } | 2047 | } |
2054 | 2048 | ||
2055 | |||
2056 | private static long nextThreadFuncNum = 0; | 2049 | private static long nextThreadFuncNum = 0; |
2057 | private static long numQueuedThreadFuncs = 0; | 2050 | private static long numQueuedThreadFuncs = 0; |
2058 | private static long numRunningThreadFuncs = 0; | 2051 | private static long numRunningThreadFuncs = 0; |
2052 | private static long numTotalThreadFuncsCalled = 0; | ||
2059 | private static Int32 threadFuncOverloadMode = 0; | 2053 | private static Int32 threadFuncOverloadMode = 0; |
2060 | 2054 | ||
2061 | // Maps (ThreadFunc number -> Thread) | 2055 | // Maps (ThreadFunc number -> Thread) |
@@ -2086,20 +2080,29 @@ namespace OpenSim.Framework | |||
2086 | } | 2080 | } |
2087 | } | 2081 | } |
2088 | 2082 | ||
2083 | public static long TotalFireAndForgetCallsMade { get { return numTotalThreadFuncsCalled; } } | ||
2084 | |||
2089 | public static Dictionary<string, int> GetFireAndForgetCallsMade() | 2085 | public static Dictionary<string, int> GetFireAndForgetCallsMade() |
2090 | { | 2086 | { |
2091 | return new Dictionary<string, int>(m_fireAndForgetCallsMade); | 2087 | return new Dictionary<string, int>(m_fireAndForgetCallsMade); |
2092 | } | 2088 | } |
2093 | 2089 | ||
2094 | private static Dictionary<string, int> m_fireAndForgetCallsMade = new Dictionary<string, int>(); | 2090 | private static Dictionary<string, int> m_fireAndForgetCallsMade = new Dictionary<string, int>(); |
2095 | 2091 | ||
2092 | public static void FireAndForget(System.Threading.WaitCallback callback) | ||
2093 | { | ||
2094 | FireAndForget(callback, null, null); | ||
2095 | } | ||
2096 | |||
2096 | public static void FireAndForget(System.Threading.WaitCallback callback, object obj) | 2097 | public static void FireAndForget(System.Threading.WaitCallback callback, object obj) |
2097 | { | 2098 | { |
2098 | FireAndForget(callback, obj, null); | 2099 | FireAndForget(callback, obj, null); |
2099 | } | 2100 | } |
2100 | 2101 | ||
2101 | public static void FireAndForget(System.Threading.WaitCallback callback, object obj, string context) | 2102 | public static void FireAndForget(System.Threading.WaitCallback callback, object obj, string context) |
2102 | { | 2103 | { |
2104 | Interlocked.Increment(ref numTotalThreadFuncsCalled); | ||
2105 | |||
2103 | if (context != null) | 2106 | if (context != null) |
2104 | { | 2107 | { |
2105 | if (!m_fireAndForgetCallsMade.ContainsKey(context)) | 2108 | if (!m_fireAndForgetCallsMade.ContainsKey(context)) |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index c8c00c8..516327c 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -1161,7 +1161,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1161 | /// <param name="map">heightmap</param> | 1161 | /// <param name="map">heightmap</param> |
1162 | public virtual void SendLayerData(float[] map) | 1162 | public virtual void SendLayerData(float[] map) |
1163 | { | 1163 | { |
1164 | Util.FireAndForget(DoSendLayerData, m_scene.Heightmap.GetTerrainData()); | 1164 | Util.FireAndForget(DoSendLayerData, m_scene.Heightmap.GetTerrainData(), "LLClientView.DoSendLayerData"); |
1165 | } | 1165 | } |
1166 | 1166 | ||
1167 | /// <summary> | 1167 | /// <summary> |
@@ -1373,7 +1373,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1373 | /// <param name="windSpeeds">16x16 array of wind speeds</param> | 1373 | /// <param name="windSpeeds">16x16 array of wind speeds</param> |
1374 | public virtual void SendWindData(Vector2[] windSpeeds) | 1374 | public virtual void SendWindData(Vector2[] windSpeeds) |
1375 | { | 1375 | { |
1376 | Util.FireAndForget(DoSendWindData, windSpeeds); | 1376 | Util.FireAndForget(DoSendWindData, windSpeeds, "LLClientView.SendWindData"); |
1377 | } | 1377 | } |
1378 | 1378 | ||
1379 | /// <summary> | 1379 | /// <summary> |
@@ -1382,7 +1382,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1382 | /// <param name="windSpeeds">16x16 array of cloud densities</param> | 1382 | /// <param name="windSpeeds">16x16 array of cloud densities</param> |
1383 | public virtual void SendCloudData(float[] cloudDensity) | 1383 | public virtual void SendCloudData(float[] cloudDensity) |
1384 | { | 1384 | { |
1385 | Util.FireAndForget(DoSendCloudData, cloudDensity); | 1385 | Util.FireAndForget(DoSendCloudData, cloudDensity, "LLClientView.SendCloudData"); |
1386 | } | 1386 | } |
1387 | 1387 | ||
1388 | /// <summary> | 1388 | /// <summary> |
@@ -8093,7 +8093,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8093 | { | 8093 | { |
8094 | // This requests the asset if needed | 8094 | // This requests the asset if needed |
8095 | HandleSimInventoryTransferRequestWithPermsCheck(sender, transfer); | 8095 | HandleSimInventoryTransferRequestWithPermsCheck(sender, transfer); |
8096 | }); | 8096 | }, null, "LLClientView.HandleTransferRequest"); |
8097 | |||
8097 | return true; | 8098 | return true; |
8098 | } | 8099 | } |
8099 | } | 8100 | } |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs index b70d861..8f14806 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs | |||
@@ -732,7 +732,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
732 | if (!m_udpServer.OqrEngine.IsRunning) | 732 | if (!m_udpServer.OqrEngine.IsRunning) |
733 | { | 733 | { |
734 | // Asynchronously run the callback | 734 | // Asynchronously run the callback |
735 | Util.FireAndForget(FireQueueEmpty, categories); | 735 | Util.FireAndForget(FireQueueEmpty, categories, "LLUDPClient.BeginFireQueueEmpty"); |
736 | } | 736 | } |
737 | else | 737 | else |
738 | { | 738 | { |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index aa10301..61e1d6a 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -991,7 +991,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
991 | // Fire this out on a different thread so that we don't hold up outgoing packet processing for | 991 | // Fire this out on a different thread so that we don't hold up outgoing packet processing for |
992 | // everybody else if this is being called due to an ack timeout. | 992 | // everybody else if this is being called due to an ack timeout. |
993 | // This is the same as processing as the async process of a logout request. | 993 | // This is the same as processing as the async process of a logout request. |
994 | Util.FireAndForget(o => DeactivateClientDueToTimeout(client, timeoutTicks)); | 994 | Util.FireAndForget( |
995 | o => DeactivateClientDueToTimeout(client, timeoutTicks), null, "LLUDPServer.DeactivateClientDueToTimeout"); | ||
995 | 996 | ||
996 | return; | 997 | return; |
997 | } | 998 | } |
@@ -1225,7 +1226,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1225 | // buffer. | 1226 | // buffer. |
1226 | object[] array = new object[] { new IPEndPoint(endPoint.Address, endPoint.Port), packet }; | 1227 | object[] array = new object[] { new IPEndPoint(endPoint.Address, endPoint.Port), packet }; |
1227 | 1228 | ||
1228 | Util.FireAndForget(HandleUseCircuitCode, array); | 1229 | Util.FireAndForget(HandleUseCircuitCode, array, "LLUDPServer.HandleUseCircuitCode"); |
1229 | 1230 | ||
1230 | return; | 1231 | return; |
1231 | } | 1232 | } |
@@ -1238,7 +1239,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1238 | // buffer. | 1239 | // buffer. |
1239 | object[] array = new object[] { new IPEndPoint(endPoint.Address, endPoint.Port), packet }; | 1240 | object[] array = new object[] { new IPEndPoint(endPoint.Address, endPoint.Port), packet }; |
1240 | 1241 | ||
1241 | Util.FireAndForget(HandleCompleteMovementIntoRegion, array); | 1242 | Util.FireAndForget( |
1243 | HandleCompleteMovementIntoRegion, array, "LLUDPServer.HandleCompleteMovementIntoRegion"); | ||
1242 | 1244 | ||
1243 | return; | 1245 | return; |
1244 | } | 1246 | } |
diff --git a/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs b/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs index 5cdcab9..47dcbcd 100644 --- a/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs +++ b/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs | |||
@@ -167,7 +167,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender | |||
167 | 167 | ||
168 | // Do Decode! | 168 | // Do Decode! |
169 | if (decode) | 169 | if (decode) |
170 | Util.FireAndForget(delegate { Decode(assetID, j2kData); }); | 170 | Util.FireAndForget(delegate { Decode(assetID, j2kData); }, null, "J2KDecoderModule.BeginDecode"); |
171 | } | 171 | } |
172 | } | 172 | } |
173 | 173 | ||
diff --git a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs index 9d6870f..5eca025 100644 --- a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs | |||
@@ -302,7 +302,7 @@ namespace OpenSim.Region.CoreModules.Asset | |||
302 | } | 302 | } |
303 | 303 | ||
304 | Util.FireAndForget( | 304 | Util.FireAndForget( |
305 | delegate { WriteFileCache(filename, asset); }); | 305 | delegate { WriteFileCache(filename, asset); }, null, "FlotsamAssetCache.UpdateFileCache"); |
306 | } | 306 | } |
307 | } | 307 | } |
308 | catch (Exception e) | 308 | catch (Exception e) |
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index d8c159f..ea7481d 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -593,7 +593,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
593 | 593 | ||
594 | if (sendTime < now) | 594 | if (sendTime < now) |
595 | { | 595 | { |
596 | Util.FireAndForget(o => SendAppearance(avatarID)); | 596 | Util.FireAndForget(o => SendAppearance(avatarID), null, "AvatarFactoryModule.SendAppearance"); |
597 | m_sendqueue.Remove(avatarID); | 597 | m_sendqueue.Remove(avatarID); |
598 | } | 598 | } |
599 | } | 599 | } |
@@ -611,7 +611,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
611 | 611 | ||
612 | if (sendTime < now) | 612 | if (sendTime < now) |
613 | { | 613 | { |
614 | Util.FireAndForget(o => SaveAppearance(avatarID)); | 614 | Util.FireAndForget(o => SaveAppearance(avatarID), null, "AvatarFactoryModule.SaveAppearance"); |
615 | m_savequeue.Remove(avatarID); | 615 | m_savequeue.Remove(avatarID); |
616 | } | 616 | } |
617 | } | 617 | } |
@@ -1038,7 +1038,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
1038 | client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++); | 1038 | client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++); |
1039 | else | 1039 | else |
1040 | m_log.WarnFormat("[AVFACTORY]: Client_OnRequestWearables unable to find presence for {0}", client.AgentId); | 1040 | m_log.WarnFormat("[AVFACTORY]: Client_OnRequestWearables unable to find presence for {0}", client.AgentId); |
1041 | }); | 1041 | }, null, "AvatarFactoryModule.OnClientRequestWearables"); |
1042 | } | 1042 | } |
1043 | 1043 | ||
1044 | /// <summary> | 1044 | /// <summary> |
diff --git a/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs b/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs index 5725d67..5e35135 100644 --- a/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs | |||
@@ -187,7 +187,7 @@ namespace OpenSim.Region.CoreModules.Avatar.BakedTextures | |||
187 | { | 187 | { |
188 | rc.Request(reqStream, m_Auth); | 188 | rc.Request(reqStream, m_Auth); |
189 | m_log.DebugFormat("[XBakes]: stored {0} textures for user {1}", data.Length, agentId); | 189 | m_log.DebugFormat("[XBakes]: stored {0} textures for user {1}", data.Length, agentId); |
190 | } | 190 | }, null, "XBakesModule.Store" |
191 | ); | 191 | ); |
192 | } | 192 | } |
193 | } | 193 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index 31bcded..7ab568e 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | |||
@@ -511,7 +511,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
511 | 511 | ||
512 | // Notify about this user status | 512 | // Notify about this user status |
513 | StatusNotify(friendList, agentID, online); | 513 | StatusNotify(friendList, agentID, online); |
514 | } | 514 | }, null, "FriendsModule.StatusChange" |
515 | ); | 515 | ); |
516 | } | 516 | } |
517 | } | 517 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs index be12935..27b7376 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs | |||
@@ -660,7 +660,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
660 | FriendsService.Delete(friendUUI, agentID.ToString()); | 660 | FriendsService.Delete(friendUUI, agentID.ToString()); |
661 | 661 | ||
662 | // notify the exfriend's service | 662 | // notify the exfriend's service |
663 | Util.FireAndForget(delegate { Delete(exfriendID, agentID, friendUUI); }); | 663 | Util.FireAndForget( |
664 | delegate { Delete(exfriendID, agentID, friendUUI); }, null, "HGFriendsModule.DeleteFriendshipForeignFriend"); | ||
664 | 665 | ||
665 | m_log.DebugFormat("[HGFRIENDS MODULE]: {0} terminated {1}", agentID, friendUUI); | 666 | m_log.DebugFormat("[HGFRIENDS MODULE]: {0} terminated {1}", agentID, friendUUI); |
666 | return true; | 667 | return true; |
@@ -678,7 +679,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
678 | FriendsService.Delete(agentUUI, exfriendID.ToString()); | 679 | FriendsService.Delete(agentUUI, exfriendID.ToString()); |
679 | 680 | ||
680 | // notify the agent's service? | 681 | // notify the agent's service? |
681 | Util.FireAndForget(delegate { Delete(agentID, exfriendID, agentUUI); }); | 682 | Util.FireAndForget( |
683 | delegate { Delete(agentID, exfriendID, agentUUI); }, null, "HGFriendsModule.DeleteFriendshipLocalFriend"); | ||
682 | 684 | ||
683 | m_log.DebugFormat("[HGFRIENDS MODULE]: {0} terminated {1}", agentUUI, exfriendID); | 685 | m_log.DebugFormat("[HGFRIENDS MODULE]: {0} terminated {1}", agentUUI, exfriendID); |
684 | return true; | 686 | return true; |
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs index 6f3c80a..a1b918a 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs | |||
@@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
213 | HandleUndeliverableMessage(im, result); | 213 | HandleUndeliverableMessage(im, result); |
214 | else | 214 | else |
215 | result(success); | 215 | result(success); |
216 | }); | 216 | }, null, "HGMessageTransferModule.SendInstantMessage"); |
217 | 217 | ||
218 | return; | 218 | return; |
219 | } | 219 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs index c1795f6..546a121 100644 --- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs | |||
@@ -194,7 +194,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles | |||
194 | Util.FireAndForget(delegate | 194 | Util.FireAndForget(delegate |
195 | { | 195 | { |
196 | GetImageAssets(((IScenePresence)obj).UUID); | 196 | GetImageAssets(((IScenePresence)obj).UUID); |
197 | }); | 197 | }, null, "UserProfileModule.GetImageAssets"); |
198 | } | 198 | } |
199 | 199 | ||
200 | /// <summary> | 200 | /// <summary> |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index 0c0cdf2..72d6bac 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -169,7 +169,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
169 | AgentCircuitData aCircuit = Scene.AuthenticateHandler.GetAgentCircuitData(so.AttachedAvatar); | 169 | AgentCircuitData aCircuit = Scene.AuthenticateHandler.GetAgentCircuitData(so.AttachedAvatar); |
170 | if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0) | 170 | if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0) |
171 | { | 171 | { |
172 | if (aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI")) | 172 | if (aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServRezerURI")) |
173 | { | 173 | { |
174 | string url = aCircuit.ServiceURLs["AssetServerURI"].ToString(); | 174 | string url = aCircuit.ServiceURLs["AssetServerURI"].ToString(); |
175 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Incoming attachment {0} for HG user {1} with asset server {2}", so.Name, so.AttachedAvatar, url); | 175 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Incoming attachment {0} for HG user {1} with asset server {2}", so.Name, so.AttachedAvatar, url); |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs index 7695404..7fcfc74 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs | |||
@@ -295,7 +295,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
295 | 295 | ||
296 | if (asset != null) | 296 | if (asset != null) |
297 | { | 297 | { |
298 | Util.FireAndForget(delegate { handler(id, sender, asset); }); | 298 | Util.FireAndForget(delegate { handler(id, sender, asset); }, null, "HGAssetBroker.GotFromCache"); |
299 | return true; | 299 | return true; |
300 | } | 300 | } |
301 | 301 | ||
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs index 97b7559..5f34450 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs | |||
@@ -236,7 +236,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
236 | 236 | ||
237 | if (asset != null) | 237 | if (asset != null) |
238 | { | 238 | { |
239 | Util.FireAndForget(delegate { handler(id, sender, asset); }); | 239 | Util.FireAndForget( |
240 | o => handler(id, sender, asset), null, "LocalAssetServiceConnector.GotFromCacheCallback"); | ||
240 | return true; | 241 | return true; |
241 | } | 242 | } |
242 | } | 243 | } |
@@ -249,7 +250,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
249 | // if (null == a) | 250 | // if (null == a) |
250 | // m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not asynchronously find asset with id {0}", id); | 251 | // m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not asynchronously find asset with id {0}", id); |
251 | 252 | ||
252 | Util.FireAndForget(delegate { handler(assetID, s, a); }); | 253 | Util.FireAndForget( |
254 | o => handler(assetID, s, a), null, "LocalAssetServiceConnector.GotFromServiceCallback"); | ||
253 | }); | 255 | }); |
254 | } | 256 | } |
255 | 257 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index bfa3b9a..9db5309 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -226,7 +226,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
226 | // We must take a copy here since handle is acts like a reference when used in an iterator. | 226 | // We must take a copy here since handle is acts like a reference when used in an iterator. |
227 | // This leads to race conditions if directly passed to SendCloseChildAgent with more than one neighbour region. | 227 | // This leads to race conditions if directly passed to SendCloseChildAgent with more than one neighbour region. |
228 | ulong handleCopy = handle; | 228 | ulong handleCopy = handle; |
229 | Util.FireAndForget((o) => { SendCloseChildAgent(agentID, handleCopy, auth_code); }); | 229 | Util.FireAndForget( |
230 | o => SendCloseChildAgent(agentID, handleCopy, auth_code), | ||
231 | null, | ||
232 | "SceneCommunicationService.SendCloseChildAgentConnections"); | ||
230 | } | 233 | } |
231 | } | 234 | } |
232 | 235 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 9481f71..1d234e2 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1235,7 +1235,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1235 | string.Format("Rez attachments for {0} in {1}", Name, Scene.Name), | 1235 | string.Format("Rez attachments for {0} in {1}", Name, Scene.Name), |
1236 | null); | 1236 | null); |
1237 | else | 1237 | else |
1238 | Util.FireAndForget(o => Scene.AttachmentsModule.RezAttachments(this)); | 1238 | Util.FireAndForget( |
1239 | o => Scene.AttachmentsModule.RezAttachments(this), null, "ScenePresence.RezAttachmentsOnLogin"); | ||
1239 | } | 1240 | } |
1240 | } | 1241 | } |
1241 | else | 1242 | else |
@@ -1338,7 +1339,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1338 | 1339 | ||
1339 | UseFakeGroupTitle = false; | 1340 | UseFakeGroupTitle = false; |
1340 | SendAvatarDataToAllClients(false); | 1341 | SendAvatarDataToAllClients(false); |
1341 | }); | 1342 | }, null, "Scenepresence.ForceViewersUpdateName"); |
1342 | } | 1343 | } |
1343 | 1344 | ||
1344 | public int GetStateSource() | 1345 | public int GetStateSource() |
@@ -3645,7 +3646,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3645 | agentpos.CopyFrom(cadu, ControllingClient.SessionId); | 3646 | agentpos.CopyFrom(cadu, ControllingClient.SessionId); |
3646 | 3647 | ||
3647 | // Let's get this out of the update loop | 3648 | // Let's get this out of the update loop |
3648 | Util.FireAndForget(delegate { m_scene.SendOutChildAgentUpdates(agentpos, this); }); | 3649 | Util.FireAndForget( |
3650 | o => m_scene.SendOutChildAgentUpdates(agentpos, this), null, "ScenePresence.SendOutChildAgentUpdates"); | ||
3649 | } | 3651 | } |
3650 | } | 3652 | } |
3651 | 3653 | ||
@@ -4515,7 +4517,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4515 | } | 4517 | } |
4516 | } | 4518 | } |
4517 | } | 4519 | } |
4518 | }); | 4520 | }, null, "ScenePresence.SendScriptEventToAttachments"); |
4519 | } | 4521 | } |
4520 | 4522 | ||
4521 | /// <summary> | 4523 | /// <summary> |
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs index a6c12fd..b69676b 100644 --- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs | |||
@@ -323,7 +323,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
323 | public UUID JsonRezAtRoot(UUID hostID, UUID scriptID, string item, Vector3 pos, Vector3 vel, Quaternion rot, string param) | 323 | public UUID JsonRezAtRoot(UUID hostID, UUID scriptID, string item, Vector3 pos, Vector3 vel, Quaternion rot, string param) |
324 | { | 324 | { |
325 | UUID reqID = UUID.Random(); | 325 | UUID reqID = UUID.Random(); |
326 | Util.FireAndForget(o => DoJsonRezObject(hostID, scriptID, reqID, item, pos, vel, rot, param)); | 326 | Util.FireAndForget( |
327 | o => DoJsonRezObject(hostID, scriptID, reqID, item, pos, vel, rot, param), null, "JsonStoreScriptModule.DoJsonRezObject"); | ||
327 | return reqID; | 328 | return reqID; |
328 | } | 329 | } |
329 | 330 | ||
@@ -336,7 +337,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
336 | public UUID JsonReadNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, string notecardIdentifier) | 337 | public UUID JsonReadNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, string notecardIdentifier) |
337 | { | 338 | { |
338 | UUID reqID = UUID.Random(); | 339 | UUID reqID = UUID.Random(); |
339 | Util.FireAndForget(o => DoJsonReadNotecard(reqID, hostID, scriptID, storeID, path, notecardIdentifier)); | 340 | Util.FireAndForget( |
341 | o => DoJsonReadNotecard(reqID, hostID, scriptID, storeID, path, notecardIdentifier), null, "JsonStoreScriptModule.JsonReadNotecard"); | ||
340 | return reqID; | 342 | return reqID; |
341 | } | 343 | } |
342 | 344 | ||
@@ -349,7 +351,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
349 | public UUID JsonWriteNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, string name) | 351 | public UUID JsonWriteNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, string name) |
350 | { | 352 | { |
351 | UUID reqID = UUID.Random(); | 353 | UUID reqID = UUID.Random(); |
352 | Util.FireAndForget(delegate(object o) { DoJsonWriteNotecard(reqID,hostID,scriptID,storeID,path,name); }); | 354 | Util.FireAndForget( |
355 | o => DoJsonWriteNotecard(reqID,hostID,scriptID,storeID,path,name), null, "JsonStoreScriptModule.DoJsonWriteNotecard"); | ||
353 | return reqID; | 356 | return reqID; |
354 | } | 357 | } |
355 | 358 | ||
@@ -464,7 +467,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
464 | public UUID JsonTakeValue(UUID hostID, UUID scriptID, UUID storeID, string path) | 467 | public UUID JsonTakeValue(UUID hostID, UUID scriptID, UUID storeID, string path) |
465 | { | 468 | { |
466 | UUID reqID = UUID.Random(); | 469 | UUID reqID = UUID.Random(); |
467 | Util.FireAndForget(delegate(object o) { DoJsonTakeValue(scriptID,reqID,storeID,path,false); }); | 470 | Util.FireAndForget( |
471 | o => DoJsonTakeValue(scriptID,reqID,storeID,path,false), null, "JsonStoreScriptModule.DoJsonTakeValue"); | ||
468 | return reqID; | 472 | return reqID; |
469 | } | 473 | } |
470 | 474 | ||
@@ -472,7 +476,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
472 | public UUID JsonTakeValueJson(UUID hostID, UUID scriptID, UUID storeID, string path) | 476 | public UUID JsonTakeValueJson(UUID hostID, UUID scriptID, UUID storeID, string path) |
473 | { | 477 | { |
474 | UUID reqID = UUID.Random(); | 478 | UUID reqID = UUID.Random(); |
475 | Util.FireAndForget(delegate(object o) { DoJsonTakeValue(scriptID,reqID,storeID,path,true); }); | 479 | Util.FireAndForget( |
480 | o => DoJsonTakeValue(scriptID,reqID,storeID,path,true), null, "JsonStoreScriptModule.DoJsonTakeValueJson"); | ||
476 | return reqID; | 481 | return reqID; |
477 | } | 482 | } |
478 | 483 | ||
@@ -485,7 +490,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
485 | public UUID JsonReadValue(UUID hostID, UUID scriptID, UUID storeID, string path) | 490 | public UUID JsonReadValue(UUID hostID, UUID scriptID, UUID storeID, string path) |
486 | { | 491 | { |
487 | UUID reqID = UUID.Random(); | 492 | UUID reqID = UUID.Random(); |
488 | Util.FireAndForget(delegate(object o) { DoJsonReadValue(scriptID,reqID,storeID,path,false); }); | 493 | Util.FireAndForget( |
494 | o => DoJsonReadValue(scriptID,reqID,storeID,path,false), null, "JsonStoreScriptModule.DoJsonReadValue"); | ||
489 | return reqID; | 495 | return reqID; |
490 | } | 496 | } |
491 | 497 | ||
@@ -493,7 +499,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | |||
493 | public UUID JsonReadValueJson(UUID hostID, UUID scriptID, UUID storeID, string path) | 499 | public UUID JsonReadValueJson(UUID hostID, UUID scriptID, UUID storeID, string path) |
494 | { | 500 | { |
495 | UUID reqID = UUID.Random(); | 501 | UUID reqID = UUID.Random(); |
496 | Util.FireAndForget(delegate(object o) { DoJsonReadValue(scriptID,reqID,storeID,path,true); }); | 502 | Util.FireAndForget( |
503 | o => DoJsonReadValue(scriptID,reqID,storeID,path,true), null, "JsonStoreScriptModule.DoJsonReadValueJson"); | ||
497 | return reqID; | 504 | return reqID; |
498 | } | 505 | } |
499 | 506 | ||
diff --git a/OpenSim/Region/OptionalModules/ViewerSupport/DynamicMenuModule.cs b/OpenSim/Region/OptionalModules/ViewerSupport/DynamicMenuModule.cs index 6e0a80a..d37369c 100644 --- a/OpenSim/Region/OptionalModules/ViewerSupport/DynamicMenuModule.cs +++ b/OpenSim/Region/OptionalModules/ViewerSupport/DynamicMenuModule.cs | |||
@@ -294,7 +294,8 @@ namespace OpenSim.Region.OptionalModules.ViewerSupport | |||
294 | for (int i = 0 ; i < selection.Count ; i++) | 294 | for (int i = 0 ; i < selection.Count ; i++) |
295 | sel.Add(selection[i].AsUInteger()); | 295 | sel.Add(selection[i].AsUInteger()); |
296 | 296 | ||
297 | Util.FireAndForget(x => { m_module.HandleMenuSelection(action, m_agentID, sel); }); | 297 | Util.FireAndForget( |
298 | x => { m_module.HandleMenuSelection(action, m_agentID, sel); }, null, "DynamicMenuModule.HandleMenuSelection"); | ||
298 | 299 | ||
299 | Encoding encoding = Encoding.UTF8; | 300 | Encoding encoding = Encoding.UTF8; |
300 | return encoding.GetBytes(OSDParser.SerializeLLSDXmlString(new OSD())); | 301 | return encoding.GetBytes(OSDParser.SerializeLLSDXmlString(new OSD())); |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index e347fdc..f5a25d6 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -3343,7 +3343,7 @@ Console.WriteLine(" JointCreateFixed"); | |||
3343 | RequestAssetDelegate assetProvider = _parent_scene.RequestAssetMethod; | 3343 | RequestAssetDelegate assetProvider = _parent_scene.RequestAssetMethod; |
3344 | if (assetProvider != null) | 3344 | if (assetProvider != null) |
3345 | assetProvider(_pbs.SculptTexture, MeshAssetReceived); | 3345 | assetProvider(_pbs.SculptTexture, MeshAssetReceived); |
3346 | }); | 3346 | }, null, "ODEPrim.CheckMeshAsset"); |
3347 | } | 3347 | } |
3348 | } | 3348 | } |
3349 | 3349 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index e7ba7a4..97e3eeb 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -2979,7 +2979,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2979 | 2979 | ||
2980 | money.ObjectGiveMoney( | 2980 | money.ObjectGiveMoney( |
2981 | m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount); | 2981 | m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount); |
2982 | }); | 2982 | }, null, "LSL_Api.llGiveMoney"); |
2983 | } | 2983 | } |
2984 | 2984 | ||
2985 | public void llMakeExplosion(int particles, double scale, double vel, double lifetime, double arc, string texture, LSL_Vector offset) | 2985 | public void llMakeExplosion(int particles, double scale, double vel, double lifetime, double arc, string texture, LSL_Vector offset) |
@@ -3075,7 +3075,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3075 | } | 3075 | } |
3076 | // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) | 3076 | // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) |
3077 | } | 3077 | } |
3078 | }); | 3078 | }, null, "LSL_Api.llRezAtRoot"); |
3079 | 3079 | ||
3080 | //ScriptSleep((int)((groupmass * velmag) / 10)); | 3080 | //ScriptSleep((int)((groupmass * velmag) / 10)); |
3081 | ScriptSleep(100); | 3081 | ScriptSleep(100); |
@@ -3270,7 +3270,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3270 | /// </remarks> | 3270 | /// </remarks> |
3271 | public void DetachFromAvatar() | 3271 | public void DetachFromAvatar() |
3272 | { | 3272 | { |
3273 | Util.FireAndForget(DetachWrapper, m_host); | 3273 | Util.FireAndForget(DetachWrapper, m_host, "LSL_Api.DetachFromAvatar"); |
3274 | } | 3274 | } |
3275 | 3275 | ||
3276 | private void DetachWrapper(object o) | 3276 | private void DetachWrapper(object o) |
@@ -12421,7 +12421,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
12421 | new LSL_String(replydata) }, | 12421 | new LSL_String(replydata) }, |
12422 | new DetectParams[0])); | 12422 | new DetectParams[0])); |
12423 | } | 12423 | } |
12424 | }); | 12424 | }, null, "LSL_Api.llTransferLindenDollars"); |
12425 | 12425 | ||
12426 | return txn.ToString(); | 12426 | return txn.ToString(); |
12427 | } | 12427 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 704ff15..10ddf14 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -790,9 +790,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
790 | 790 | ||
791 | // We will launch the teleport on a new thread so that when the script threads are terminated | 791 | // We will launch the teleport on a new thread so that when the script threads are terminated |
792 | // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting. | 792 | // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting. |
793 | Util.FireAndForget(o => World.RequestTeleportLocation( | 793 | Util.FireAndForget( |
794 | presence.ControllingClient, regionName, position, | 794 | o => World.RequestTeleportLocation( |
795 | lookat, (uint)TPFlags.ViaLocation)); | 795 | presence.ControllingClient, regionName, position, |
796 | lookat, (uint)TPFlags.ViaLocation), | ||
797 | null, "OSSL_Api.TeleportAgentByRegionCoords"); | ||
796 | 798 | ||
797 | ScriptSleep(5000); | 799 | ScriptSleep(5000); |
798 | 800 | ||
@@ -836,9 +838,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
836 | 838 | ||
837 | // We will launch the teleport on a new thread so that when the script threads are terminated | 839 | // We will launch the teleport on a new thread so that when the script threads are terminated |
838 | // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting. | 840 | // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting. |
839 | Util.FireAndForget(o => World.RequestTeleportLocation( | 841 | Util.FireAndForget( |
840 | presence.ControllingClient, regionHandle, | 842 | o => World.RequestTeleportLocation( |
841 | position, lookat, (uint)TPFlags.ViaLocation)); | 843 | presence.ControllingClient, regionHandle, |
844 | position, lookat, (uint)TPFlags.ViaLocation), | ||
845 | null, "OSSL_Api.TeleportAgentByRegionName"); | ||
842 | 846 | ||
843 | ScriptSleep(5000); | 847 | ScriptSleep(5000); |
844 | 848 | ||
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs index da2bfeb..81c9df2 100644 --- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | |||
@@ -182,7 +182,8 @@ namespace OpenSim.Server.Handlers.Simulation | |||
182 | if (action.Equals("release")) | 182 | if (action.Equals("release")) |
183 | ReleaseAgent(regionID, id); | 183 | ReleaseAgent(regionID, id); |
184 | else | 184 | else |
185 | Util.FireAndForget(delegate { m_SimulationService.CloseAgent(destination, id, auth_token); }); | 185 | Util.FireAndForget( |
186 | o => m_SimulationService.CloseAgent(destination, id, auth_token), null, "AgentHandler.DoAgentDelete"); | ||
186 | 187 | ||
187 | responsedata["int_response_code"] = HttpStatusCode.OK; | 188 | responsedata["int_response_code"] = HttpStatusCode.OK; |
188 | responsedata["str_response_string"] = "OpenSim agent " + id.ToString(); | 189 | responsedata["str_response_string"] = "OpenSim agent " + id.ToString(); |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs index 95e4bab..cd4781d 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
69 | Util.FireAndForget(delegate(object o) | 69 | Util.FireAndForget(delegate(object o) |
70 | { | 70 | { |
71 | m_GridUserService.SetLastPosition(sp.UUID.ToString(), sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat); | 71 | m_GridUserService.SetLastPosition(sp.UUID.ToString(), sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat); |
72 | }); | 72 | }, null, "SimianActivityDetector.SetLastPositionOnMakeRootAgent"); |
73 | } | 73 | } |
74 | 74 | ||
75 | public void OnNewClient(IClientAPI client) | 75 | public void OnNewClient(IClientAPI client) |
@@ -94,7 +94,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
94 | Util.FireAndForget(delegate(object o) | 94 | Util.FireAndForget(delegate(object o) |
95 | { | 95 | { |
96 | m_GridUserService.SetLastPosition(sp.UUID.ToString(), sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat); | 96 | m_GridUserService.SetLastPosition(sp.UUID.ToString(), sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID, sp.AbsolutePosition, sp.Lookat); |
97 | }); | 97 | }, null, "SimianActivityDetector.SetLastPositionOnEnteringNewParcel"); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | } \ No newline at end of file | 100 | } \ No newline at end of file |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs index 01cbf91..9ad4a7a 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs | |||
@@ -225,7 +225,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
225 | { | 225 | { |
226 | AssetBase asset = SimianGetOperation(id); | 226 | AssetBase asset = SimianGetOperation(id); |
227 | handler(id, sender, asset); | 227 | handler(id, sender, asset); |
228 | } | 228 | }, null, "SimianAssetServiceConnector.GetFromService" |
229 | ); | 229 | ); |
230 | 230 | ||
231 | return true; | 231 | return true; |
diff --git a/OpenSim/Services/HypergridService/HGFriendsService.cs b/OpenSim/Services/HypergridService/HGFriendsService.cs index a8bcfb2..6e35a88 100644 --- a/OpenSim/Services/HypergridService/HGFriendsService.cs +++ b/OpenSim/Services/HypergridService/HGFriendsService.cs | |||
@@ -198,7 +198,8 @@ namespace OpenSim.Services.HypergridService | |||
198 | // So let's send back the call, but start a thread to continue | 198 | // So let's send back the call, but start a thread to continue |
199 | // with the verification and the actual action. | 199 | // with the verification and the actual action. |
200 | 200 | ||
201 | Util.FireAndForget(delegate { ProcessFriendshipOffered(fromID, fromName, toID, message); }); | 201 | Util.FireAndForget( |
202 | o => ProcessFriendshipOffered(fromID, fromName, toID, message), null, "HGFriendsService.ProcessFriendshipOffered"); | ||
202 | 203 | ||
203 | return true; | 204 | return true; |
204 | } | 205 | } |
diff --git a/OpenSim/Services/MapImageService/MapImageService.cs b/OpenSim/Services/MapImageService/MapImageService.cs index c07e034..a816411 100644 --- a/OpenSim/Services/MapImageService/MapImageService.cs +++ b/OpenSim/Services/MapImageService/MapImageService.cs | |||
@@ -166,7 +166,8 @@ namespace OpenSim.Services.MapImageService | |||
166 | // m_log.DebugFormat("{0} UpdateMultiResolutionFilesAsync: scheduling update for <{1},{2}>", LogHeader, x, y); | 166 | // m_log.DebugFormat("{0} UpdateMultiResolutionFilesAsync: scheduling update for <{1},{2}>", LogHeader, x, y); |
167 | multiRezToBuild.Enqueue(new mapToMultiRez(x, y)); | 167 | multiRezToBuild.Enqueue(new mapToMultiRez(x, y)); |
168 | if (multiRezToBuild.Count == 1) | 168 | if (multiRezToBuild.Count == 1) |
169 | Util.FireAndForget(DoUpdateMultiResolutionFilesAsync); | 169 | Util.FireAndForget( |
170 | DoUpdateMultiResolutionFilesAsync, null, "MapImageService.DoUpdateMultiResolutionFilesAsync"); | ||
170 | } | 171 | } |
171 | 172 | ||
172 | return true; | 173 | return true; |
diff --git a/OpenSim/Tests/Stress/VectorRenderModuleStressTests.cs b/OpenSim/Tests/Stress/VectorRenderModuleStressTests.cs index 9b3cc93..0ab407e 100644 --- a/OpenSim/Tests/Stress/VectorRenderModuleStressTests.cs +++ b/OpenSim/Tests/Stress/VectorRenderModuleStressTests.cs | |||
@@ -78,7 +78,7 @@ namespace OpenSim.Tests.Stress | |||
78 | Drawer d = new Drawer(this, i); | 78 | Drawer d = new Drawer(this, i); |
79 | drawers.Add(d); | 79 | drawers.Add(d); |
80 | Console.WriteLine("Starting drawer {0}", i); | 80 | Console.WriteLine("Starting drawer {0}", i); |
81 | Util.FireAndForget(o => d.Draw()); | 81 | Util.FireAndForget(o => d.Draw(), null, "VectorRenderModuleStressTests.TestConcurrentRepeatedDraw"); |
82 | } | 82 | } |
83 | 83 | ||
84 | Thread.Sleep(10 * 60 * 1000); | 84 | Thread.Sleep(10 * 60 * 1000); |