From d3b778ebbe617a37a32c866101c75284dad8f15a Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 8 Jul 2012 06:06:33 +0200
Subject: Address map lag issue seen with non-avination viewers

---
 OpenSim/Server/Handlers/Map/MapGetServerConnector.cs | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

(limited to 'OpenSim/Server')

diff --git a/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs b/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs
index fb85d1c..4502b7d 100644
--- a/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs
+++ b/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs
@@ -29,6 +29,7 @@ using System;
 using System.IO;
 using System.Net;
 using System.Reflection;
+using System.Threading;
 
 using Nini.Config;
 using log4net;
@@ -70,6 +71,8 @@ namespace OpenSim.Server.Handlers.MapImage
 
     class MapServerGetHandler : BaseStreamHandler
     {
+        public static ManualResetEvent ev = new ManualResetEvent(true);
+
 //        private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
 
         private IMapImageService m_MapService;
@@ -82,8 +85,13 @@ namespace OpenSim.Server.Handlers.MapImage
 
         public override byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
         {
-            byte[] result = new byte[0];
+            ev.WaitOne();
+            lock (ev)
+            {
+                ev.Reset();
+            }
 
+            byte[] result = new byte[0];
             string format = string.Empty;
             result = m_MapService.GetMapTile(path.Trim('/'), out format);
             if (result.Length > 0)
@@ -100,6 +108,11 @@ namespace OpenSim.Server.Handlers.MapImage
                 httpResponse.ContentType = "text/plain";
             }
 
+            lock (ev)
+            {
+                ev.Set();
+            }
+
             return result;
         }
 
-- 
cgit v1.1