diff options
author | John Hurliman | 2009-10-21 23:03:18 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-21 23:03:18 -0700 |
commit | 32ccd5bb40447ea4d96f1181cf73edff3645a55a (patch) | |
tree | 65a6f75985e9aef1a9641c098332823d10afb748 /OpenSim/Region | |
parent | * Change the OnQueueEmpty signature to send the flags of the queues that are ... (diff) | |
download | opensim-SC-32ccd5bb40447ea4d96f1181cf73edff3645a55a.zip opensim-SC-32ccd5bb40447ea4d96f1181cf73edff3645a55a.tar.gz opensim-SC-32ccd5bb40447ea4d96f1181cf73edff3645a55a.tar.bz2 opensim-SC-32ccd5bb40447ea4d96f1181cf73edff3645a55a.tar.xz |
* Changed the misc. methods calling ThreadPool.UnsafeQueueUserWorkItem() to Util.FireAndForget()
* Changed Util.FireAndForget() to use any of five different methods set with async_call_method in the [Startup] section of OpenSim.ini. Look at the example config for possible values
Diffstat (limited to 'OpenSim/Region')
4 files changed, 14 insertions, 11 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 143dd2a..5be1816 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -90,10 +90,17 @@ namespace OpenSim | |||
90 | appender.File = fileName; | 90 | appender.File = fileName; |
91 | appender.ActivateOptions(); | 91 | appender.ActivateOptions(); |
92 | } | 92 | } |
93 | m_log.InfoFormat("[LOGGING] Logging started to file {0}", appender.File); | 93 | m_log.InfoFormat("[LOGGING]: Logging started to file {0}", appender.File); |
94 | } | 94 | } |
95 | } | 95 | } |
96 | |||
97 | string asyncCallMethodStr = startupConfig.GetString("async_call_method", String.Empty); | ||
98 | FireAndForgetMethod asyncCallMethod; | ||
99 | if (!String.IsNullOrEmpty(asyncCallMethodStr) && Utils.EnumTryParse<FireAndForgetMethod>(asyncCallMethodStr, out asyncCallMethod)) | ||
100 | Util.FireAndForgetMethod = asyncCallMethod; | ||
96 | } | 101 | } |
102 | |||
103 | m_log.Info("[OPENSIM MAIN]: Using async_call_method " + Util.FireAndForgetMethod); | ||
97 | } | 104 | } |
98 | 105 | ||
99 | /// <summary> | 106 | /// <summary> |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 432fee7..0ba76ec 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -791,7 +791,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
791 | /// <param name="map">heightmap</param> | 791 | /// <param name="map">heightmap</param> |
792 | public virtual void SendLayerData(float[] map) | 792 | public virtual void SendLayerData(float[] map) |
793 | { | 793 | { |
794 | ThreadPool.UnsafeQueueUserWorkItem(DoSendLayerData, map); | 794 | Util.FireAndForget(DoSendLayerData, map); |
795 | } | 795 | } |
796 | 796 | ||
797 | /// <summary> | 797 | /// <summary> |
@@ -931,7 +931,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
931 | /// <param name="windSpeeds">16x16 array of wind speeds</param> | 931 | /// <param name="windSpeeds">16x16 array of wind speeds</param> |
932 | public virtual void SendWindData(Vector2[] windSpeeds) | 932 | public virtual void SendWindData(Vector2[] windSpeeds) |
933 | { | 933 | { |
934 | ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback(DoSendWindData), (object)windSpeeds); | 934 | Util.FireAndForget(DoSendWindData, windSpeeds); |
935 | } | 935 | } |
936 | 936 | ||
937 | /// <summary> | 937 | /// <summary> |
@@ -940,7 +940,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
940 | /// <param name="windSpeeds">16x16 array of cloud densities</param> | 940 | /// <param name="windSpeeds">16x16 array of cloud densities</param> |
941 | public virtual void SendCloudData(float[] cloudDensity) | 941 | public virtual void SendCloudData(float[] cloudDensity) |
942 | { | 942 | { |
943 | ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback(DoSendCloudData), (object)cloudDensity); | 943 | Util.FireAndForget(DoSendCloudData, cloudDensity); |
944 | } | 944 | } |
945 | 945 | ||
946 | /// <summary> | 946 | /// <summary> |
diff --git a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs index cbdca16..c6af806 100644 --- a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs | |||
@@ -302,12 +302,8 @@ namespace Flotsam.RegionModules.AssetCache | |||
302 | 302 | ||
303 | } | 303 | } |
304 | 304 | ||
305 | ThreadPool.UnsafeQueueUserWorkItem( | 305 | Util.FireAndForget( |
306 | delegate | 306 | delegate { WriteFileCache(filename, asset); }); |
307 | { | ||
308 | WriteFileCache(filename, asset); | ||
309 | }, null | ||
310 | ); | ||
311 | } | 307 | } |
312 | } | 308 | } |
313 | catch (Exception e) | 309 | catch (Exception e) |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 1260584..4e40084 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -1095,7 +1095,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1095 | // The reason is so we don't cause the thread to freeze waiting | 1095 | // The reason is so we don't cause the thread to freeze waiting |
1096 | // for the 1 second it costs to start a thread manually. | 1096 | // for the 1 second it costs to start a thread manually. |
1097 | if (!threadrunning) | 1097 | if (!threadrunning) |
1098 | ThreadPool.UnsafeQueueUserWorkItem(this.StartThread, null); | 1098 | Util.FireAndForget(this.StartThread); |
1099 | 1099 | ||
1100 | lock (m_rootAgents) | 1100 | lock (m_rootAgents) |
1101 | { | 1101 | { |