aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDr Scofield2008-07-07 09:58:01 +0000
committerDr Scofield2008-07-07 09:58:01 +0000
commit7420f96128020ba158d9712497d3c36796c88087 (patch)
treecaf31c2760e2fb3ff4128308cd41ac1eddf849db
parentfurther progress on HttpServer integration: OSHttpRequest can now be (diff)
downloadopensim-SC-7420f96128020ba158d9712497d3c36796c88087.zip
opensim-SC-7420f96128020ba158d9712497d3c36796c88087.tar.gz
opensim-SC-7420f96128020ba158d9712497d3c36796c88087.tar.bz2
opensim-SC-7420f96128020ba158d9712497d3c36796c88087.tar.xz
switching to safer locks.
-rw-r--r--.hgignore11
-rw-r--r--OpenSim/Framework/Servers/OSHttpRequestQueue.cs10
2 files changed, 12 insertions, 9 deletions
diff --git a/.hgignore b/.hgignore
index 223c8ee..97064f7 100644
--- a/.hgignore
+++ b/.hgignore
@@ -1,4 +1,3 @@
1^tailor.state$
2^tailor.state.old$ 1^tailor.state.old$
3^tailor.state.journal$ 2^tailor.state.journal$
4\.csproj$ 3\.csproj$
@@ -6,12 +5,14 @@
6\.mdp$ 5\.mdp$
7\.mds$ 6\.mds$
8\.dll\.build$ 7\.dll\.build$
9/bin/Debug/.+\.dll$ 8^bin/Debug/.+\.dll$
10/bin/Debug/.+\.dll.mdb$ 9bin/.+\.dll.mdb$
11^bin/.+\.dll$ 10bin/addin-db-
11bin/.+\.dll$
12bin/.+\.maddin$
13Examples/.+\.dll$
12^bin/.+\.exe 14^bin/.+\.exe
13^(OpenSim|Prebuild)/.+\.(exe|exe\.build|exe\.mdb)$ 15^(OpenSim|Prebuild)/.+\.(exe|exe\.build|exe\.mdb)$
14^OpenSim\.(build|sln)$ 16^OpenSim\.(build|sln)$
15^Prebuild/Prebuild\.(build|sln)$ 17^Prebuild/Prebuild\.(build|sln)$
16.+~$ 18.+~$
17
diff --git a/OpenSim/Framework/Servers/OSHttpRequestQueue.cs b/OpenSim/Framework/Servers/OSHttpRequestQueue.cs
index f3dfda4..f6f1829 100644
--- a/OpenSim/Framework/Servers/OSHttpRequestQueue.cs
+++ b/OpenSim/Framework/Servers/OSHttpRequestQueue.cs
@@ -38,12 +38,14 @@ namespace OpenSim.Framework.Servers
38 /// </summary> 38 /// </summary>
39 public class OSHttpRequestQueue : Queue<OSHttpRequest> 39 public class OSHttpRequestQueue : Queue<OSHttpRequest>
40 { 40 {
41 private object _syncObject = new object();
42
41 new public void Enqueue(OSHttpRequest req) 43 new public void Enqueue(OSHttpRequest req)
42 { 44 {
43 lock (this) 45 lock (_syncObject)
44 { 46 {
45 base.Enqueue(req); 47 base.Enqueue(req);
46 Monitor.Pulse(this); 48 Monitor.Pulse(_syncObject);
47 } 49 }
48 } 50 }
49 51
@@ -51,11 +53,11 @@ namespace OpenSim.Framework.Servers
51 { 53 {
52 OSHttpRequest req = null; 54 OSHttpRequest req = null;
53 55
54 lock (this) 56 lock (_syncObject)
55 { 57 {
56 while (null == req) 58 while (null == req)
57 { 59 {
58 Monitor.Wait(this); 60 Monitor.Wait(_syncObject);
59 if (0 != this.Count) req = base.Dequeue(); 61 if (0 != this.Count) req = base.Dequeue();
60 } 62 }
61 } 63 }