parent
cf2d1b5c10
commit
8a9d168928
|
@ -59,6 +59,8 @@ using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using HttpServer;
|
using HttpServer;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
using System.Reflection;
|
||||||
|
using log4net;
|
||||||
|
|
||||||
namespace OpenSim.Framework.Servers.HttpServer
|
namespace OpenSim.Framework.Servers.HttpServer
|
||||||
{
|
{
|
||||||
|
@ -66,6 +68,10 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
|
|
||||||
public class PollServiceWorkerThread
|
public class PollServiceWorkerThread
|
||||||
{
|
{
|
||||||
|
private static readonly ILog m_log =
|
||||||
|
LogManager.GetLogger(
|
||||||
|
MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
public event ReQueuePollServiceItem ReQueue;
|
public event ReQueuePollServiceItem ReQueue;
|
||||||
|
|
||||||
private readonly BaseHttpServer m_server;
|
private readonly BaseHttpServer m_server;
|
||||||
|
@ -92,31 +98,36 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
while (m_running)
|
while (m_running)
|
||||||
{
|
{
|
||||||
PollServiceHttpRequest req = m_request.Dequeue();
|
PollServiceHttpRequest req = m_request.Dequeue();
|
||||||
if (req.PollServiceArgs.HasEvents(req.PollServiceArgs.Id))
|
try
|
||||||
{
|
{
|
||||||
StreamReader str = new StreamReader(req.Request.Body);
|
if (req.PollServiceArgs.HasEvents(req.PollServiceArgs.Id))
|
||||||
|
|
||||||
Hashtable responsedata = req.PollServiceArgs.GetEvents(req.PollServiceArgs.Id, str.ReadToEnd());
|
|
||||||
m_server.DoHTTPGruntWork(responsedata,
|
|
||||||
new OSHttpResponse(new HttpResponse(req.HttpContext, req.Request),req.HttpContext));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((Environment.TickCount - req.RequestTime) > m_timeout)
|
|
||||||
{
|
{
|
||||||
m_server.DoHTTPGruntWork(req.PollServiceArgs.NoEvents(),
|
StreamReader str = new StreamReader(req.Request.Body);
|
||||||
|
|
||||||
|
Hashtable responsedata = req.PollServiceArgs.GetEvents(req.PollServiceArgs.Id, str.ReadToEnd());
|
||||||
|
m_server.DoHTTPGruntWork(responsedata,
|
||||||
new OSHttpResponse(new HttpResponse(req.HttpContext, req.Request),req.HttpContext));
|
new OSHttpResponse(new HttpResponse(req.HttpContext, req.Request),req.HttpContext));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ReQueuePollServiceItem reQueueItem = ReQueue;
|
if ((Environment.TickCount - req.RequestTime) > m_timeout)
|
||||||
if (reQueueItem != null)
|
{
|
||||||
reQueueItem(req);
|
m_server.DoHTTPGruntWork(req.PollServiceArgs.NoEvents(),
|
||||||
|
new OSHttpResponse(new HttpResponse(req.HttpContext, req.Request),req.HttpContext));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ReQueuePollServiceItem reQueueItem = ReQueue;
|
||||||
|
if (reQueueItem != null)
|
||||||
|
reQueueItem(req);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat("Exception in poll service thread: " + e.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Enqueue(PollServiceHttpRequest pPollServiceHttpRequest)
|
internal void Enqueue(PollServiceHttpRequest pPollServiceHttpRequest)
|
||||||
|
|
Loading…
Reference in New Issue