diff options
author | lbsa71 | 2008-01-02 09:07:11 +0000 |
---|---|---|
committer | lbsa71 | 2008-01-02 09:07:11 +0000 |
commit | 4b4ee9807054bdb06d7b1c3e0a5205836aff4f3c (patch) | |
tree | 1ba334b56be2a096875f57e84e76f5d5ee73575e /OpenSim/Framework | |
parent | Put warning codes explaining why some explicit bin/ScriptEngines paths were a... (diff) | |
download | opensim-SC-4b4ee9807054bdb06d7b1c3e0a5205836aff4f3c.zip opensim-SC-4b4ee9807054bdb06d7b1c3e0a5205836aff4f3c.tar.gz opensim-SC-4b4ee9807054bdb06d7b1c3e0a5205836aff4f3c.tar.bz2 opensim-SC-4b4ee9807054bdb06d7b1c3e0a5205836aff4f3c.tar.xz |
* Trying to address TextureSender issues
* The BlockingQueue exposes Contains so we can make sure we don't add a TextureSender to the queue if there's already one present
* introduced some TryGetValue and various code convention stuff
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/BlockingQueue.cs | 25 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/Cache/AssetCache.cs | 6 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/Cache/AssetServerBase.cs | 38 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/Cache/SQLAssetServer.cs | 20 |
4 files changed, 48 insertions, 41 deletions
diff --git a/OpenSim/Framework/BlockingQueue.cs b/OpenSim/Framework/BlockingQueue.cs index ae2a189..3ff3dac 100644 --- a/OpenSim/Framework/BlockingQueue.cs +++ b/OpenSim/Framework/BlockingQueue.cs | |||
@@ -32,27 +32,34 @@ namespace OpenSim.Framework | |||
32 | { | 32 | { |
33 | public class BlockingQueue<T> | 33 | public class BlockingQueue<T> |
34 | { | 34 | { |
35 | private Queue<T> _queue = new Queue<T>(); | 35 | private readonly Queue<T> m_queue = new Queue<T>(); |
36 | private object _queueSync = new object(); | 36 | private readonly object m_queueSync = new object(); |
37 | 37 | ||
38 | public void Enqueue(T value) | 38 | public void Enqueue(T value) |
39 | { | 39 | { |
40 | lock (_queueSync) | 40 | lock (m_queueSync) |
41 | { | 41 | { |
42 | _queue.Enqueue(value); | 42 | m_queue.Enqueue(value); |
43 | Monitor.Pulse(_queueSync); | 43 | Monitor.Pulse(m_queueSync); |
44 | } | 44 | } |
45 | } | 45 | } |
46 | 46 | ||
47 | public T Dequeue() | 47 | public T Dequeue() |
48 | { | 48 | { |
49 | lock (_queueSync) | 49 | lock (m_queueSync) |
50 | { | 50 | { |
51 | if (_queue.Count < 1) | 51 | if (m_queue.Count < 1) |
52 | Monitor.Wait(_queueSync); | 52 | { |
53 | Monitor.Wait(m_queueSync); | ||
54 | } | ||
53 | 55 | ||
54 | return _queue.Dequeue(); | 56 | return m_queue.Dequeue(); |
55 | } | 57 | } |
56 | } | 58 | } |
59 | |||
60 | public bool Contains(T item) | ||
61 | { | ||
62 | return m_queue.Contains(item); | ||
63 | } | ||
57 | } | 64 | } |
58 | } \ No newline at end of file | 65 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 664625e..bd3437b 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs | |||
@@ -56,10 +56,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
56 | 56 | ||
57 | public Dictionary<LLUUID, AssetRequestsList> RequestLists = new Dictionary<LLUUID, AssetRequestsList>(); | 57 | public Dictionary<LLUUID, AssetRequestsList> RequestLists = new Dictionary<LLUUID, AssetRequestsList>(); |
58 | 58 | ||
59 | private IAssetServer m_assetServer; | 59 | private readonly IAssetServer m_assetServer; |
60 | 60 | ||
61 | private Thread m_assetCacheThread; | 61 | private readonly Thread m_assetCacheThread; |
62 | private LogBase m_log; | 62 | private readonly LogBase m_log; |
63 | 63 | ||
64 | /// <summary> | 64 | /// <summary> |
65 | /// | 65 | /// |
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs index 318082b..f0ed968 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs | |||
@@ -37,11 +37,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
37 | { | 37 | { |
38 | public abstract class AssetServerBase : IAssetServer | 38 | public abstract class AssetServerBase : IAssetServer |
39 | { | 39 | { |
40 | protected IAssetReceiver _receiver; | 40 | protected IAssetReceiver m_receiver; |
41 | protected BlockingQueue<AssetRequest> _assetRequests; | 41 | protected BlockingQueue<AssetRequest> m_assetRequests; |
42 | protected Thread _localAssetServerThread; | 42 | protected Thread m_localAssetServerThread; |
43 | protected IAssetProvider m_assetProviderPlugin; | 43 | protected IAssetProvider m_assetProvider; |
44 | protected object syncLock = new object(); | 44 | protected object m_syncLock = new object(); |
45 | 45 | ||
46 | // Temporarily hardcoded - should be a plugin | 46 | // Temporarily hardcoded - should be a plugin |
47 | protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); | 47 | protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); |
@@ -71,14 +71,14 @@ namespace OpenSim.Framework.Communications.Cache | |||
71 | MainLog.Instance.Verbose( | 71 | MainLog.Instance.Verbose( |
72 | "ASSET", "Asset {0} received from asset server", req.AssetID); | 72 | "ASSET", "Asset {0} received from asset server", req.AssetID); |
73 | 73 | ||
74 | _receiver.AssetReceived(asset, req.IsTexture); | 74 | m_receiver.AssetReceived(asset, req.IsTexture); |
75 | } | 75 | } |
76 | else | 76 | else |
77 | { | 77 | { |
78 | MainLog.Instance.Error( | 78 | MainLog.Instance.Error( |
79 | "ASSET", "Asset {0} not found by asset server", req.AssetID); | 79 | "ASSET", "Asset {0} not found by asset server", req.AssetID); |
80 | 80 | ||
81 | _receiver.AssetNotFound(req.AssetID); | 81 | m_receiver.AssetNotFound(req.AssetID); |
82 | } | 82 | } |
83 | } | 83 | } |
84 | 84 | ||
@@ -95,11 +95,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
95 | public AssetServerBase() | 95 | public AssetServerBase() |
96 | { | 96 | { |
97 | MainLog.Instance.Verbose("ASSETSERVER", "Starting asset storage system"); | 97 | MainLog.Instance.Verbose("ASSETSERVER", "Starting asset storage system"); |
98 | _assetRequests = new BlockingQueue<AssetRequest>(); | 98 | m_assetRequests = new BlockingQueue<AssetRequest>(); |
99 | 99 | ||
100 | _localAssetServerThread = new Thread(RunRequests); | 100 | m_localAssetServerThread = new Thread(RunRequests); |
101 | _localAssetServerThread.IsBackground = true; | 101 | m_localAssetServerThread.IsBackground = true; |
102 | _localAssetServerThread.Start(); | 102 | m_localAssetServerThread.Start(); |
103 | } | 103 | } |
104 | 104 | ||
105 | private void RunRequests() | 105 | private void RunRequests() |
@@ -108,7 +108,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
108 | { | 108 | { |
109 | try | 109 | try |
110 | { | 110 | { |
111 | AssetRequest req = _assetRequests.Dequeue(); | 111 | AssetRequest req = m_assetRequests.Dequeue(); |
112 | 112 | ||
113 | ProcessRequest(req); | 113 | ProcessRequest(req); |
114 | } | 114 | } |
@@ -121,7 +121,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
121 | 121 | ||
122 | public void SetReceiver(IAssetReceiver receiver) | 122 | public void SetReceiver(IAssetReceiver receiver) |
123 | { | 123 | { |
124 | _receiver = receiver; | 124 | m_receiver = receiver; |
125 | } | 125 | } |
126 | 126 | ||
127 | public void RequestAsset(LLUUID assetID, bool isTexture) | 127 | public void RequestAsset(LLUUID assetID, bool isTexture) |
@@ -129,23 +129,23 @@ namespace OpenSim.Framework.Communications.Cache | |||
129 | AssetRequest req = new AssetRequest(); | 129 | AssetRequest req = new AssetRequest(); |
130 | req.AssetID = assetID; | 130 | req.AssetID = assetID; |
131 | req.IsTexture = isTexture; | 131 | req.IsTexture = isTexture; |
132 | _assetRequests.Enqueue(req); | 132 | m_assetRequests.Enqueue(req); |
133 | 133 | ||
134 | MainLog.Instance.Verbose("ASSET", "Added {0} to request queue", assetID); | 134 | MainLog.Instance.Verbose("ASSET", "Added {0} to request queue", assetID); |
135 | } | 135 | } |
136 | 136 | ||
137 | public virtual void UpdateAsset(AssetBase asset) | 137 | public virtual void UpdateAsset(AssetBase asset) |
138 | { | 138 | { |
139 | lock (syncLock) | 139 | lock (m_syncLock) |
140 | { | 140 | { |
141 | m_assetProviderPlugin.UpdateAsset(asset); | 141 | m_assetProvider.UpdateAsset(asset); |
142 | m_assetProviderPlugin.CommitAssets(); | 142 | m_assetProvider.CommitAssets(); |
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | public void StoreAndCommitAsset(AssetBase asset) | 146 | public void StoreAndCommitAsset(AssetBase asset) |
147 | { | 147 | { |
148 | lock (syncLock) | 148 | lock (m_syncLock) |
149 | { | 149 | { |
150 | StoreAsset(asset); | 150 | StoreAsset(asset); |
151 | CommitAssets(); | 151 | CommitAssets(); |
@@ -154,7 +154,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
154 | 154 | ||
155 | public virtual void Close() | 155 | public virtual void Close() |
156 | { | 156 | { |
157 | _localAssetServerThread.Abort(); | 157 | m_localAssetServerThread.Abort(); |
158 | } | 158 | } |
159 | 159 | ||
160 | public void SetServerInfo(string ServerUrl, string ServerKey) | 160 | public void SetServerInfo(string ServerUrl, string ServerKey) |
diff --git a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs index e4c278f..0a141c3 100644 --- a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs +++ b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
40 | 40 | ||
41 | public SQLAssetServer(IAssetProvider assetProvider) | 41 | public SQLAssetServer(IAssetProvider assetProvider) |
42 | { | 42 | { |
43 | m_assetProviderPlugin = assetProvider; | 43 | m_assetProvider = assetProvider; |
44 | } | 44 | } |
45 | 45 | ||
46 | public void AddPlugin(string FileName) | 46 | public void AddPlugin(string FileName) |
@@ -58,12 +58,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
58 | { | 58 | { |
59 | IAssetProvider plug = | 59 | IAssetProvider plug = |
60 | (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 60 | (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
61 | m_assetProviderPlugin = plug; | 61 | m_assetProvider = plug; |
62 | m_assetProviderPlugin.Initialise(); | 62 | m_assetProvider.Initialise(); |
63 | 63 | ||
64 | MainLog.Instance.Verbose("AssetStorage", | 64 | MainLog.Instance.Verbose("AssetStorage", |
65 | "Added " + m_assetProviderPlugin.Name + " " + | 65 | "Added " + m_assetProvider.Name + " " + |
66 | m_assetProviderPlugin.Version); | 66 | m_assetProvider.Version); |
67 | } | 67 | } |
68 | } | 68 | } |
69 | } | 69 | } |
@@ -74,15 +74,15 @@ namespace OpenSim.Framework.Communications.Cache | |||
74 | { | 74 | { |
75 | base.Close(); | 75 | base.Close(); |
76 | 76 | ||
77 | m_assetProviderPlugin.CommitAssets(); | 77 | m_assetProvider.CommitAssets(); |
78 | } | 78 | } |
79 | 79 | ||
80 | protected override AssetBase GetAsset(AssetRequest req) | 80 | protected override AssetBase GetAsset(AssetRequest req) |
81 | { | 81 | { |
82 | AssetBase asset; | 82 | AssetBase asset; |
83 | lock (syncLock) | 83 | lock (m_syncLock) |
84 | { | 84 | { |
85 | asset = m_assetProviderPlugin.FetchAsset(req.AssetID); | 85 | asset = m_assetProvider.FetchAsset(req.AssetID); |
86 | } | 86 | } |
87 | 87 | ||
88 | return asset; | 88 | return asset; |
@@ -90,12 +90,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
90 | 90 | ||
91 | protected override void StoreAsset(AssetBase asset) | 91 | protected override void StoreAsset(AssetBase asset) |
92 | { | 92 | { |
93 | m_assetProviderPlugin.CreateAsset(asset); | 93 | m_assetProvider.CreateAsset(asset); |
94 | } | 94 | } |
95 | 95 | ||
96 | protected override void CommitAssets() | 96 | protected override void CommitAssets() |
97 | { | 97 | { |
98 | m_assetProviderPlugin.CommitAssets(); | 98 | m_assetProvider.CommitAssets(); |
99 | } | 99 | } |
100 | } | 100 | } |
101 | } \ No newline at end of file | 101 | } \ No newline at end of file |