aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-08 21:15:31 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-08 21:15:31 -0400
commita2dc5e090bac15ee2dd7c83281aa9fada1f74734 (patch)
tree5f6da5aa9c9faed8a4c0ff05d504043adad3efc3 /MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs
parent09bffa1b560f2d9e43735f3c6de881e17b2c245f (diff)
update translations
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs')
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs15
1 files changed, 5 insertions, 10 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs b/MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs
index 118bec60e..e73738e4e 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/NetListener/HttpListenerServer.cs
@@ -17,7 +17,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer.NetListener
{
private readonly ILogger _logger;
private HttpListener _listener;
- private readonly AutoResetEvent _listenForNextRequest = new AutoResetEvent(false);
+ private readonly ManualResetEventSlim _listenForNextRequest = new ManualResetEventSlim(false);
public Action<Exception, IRequest> ErrorHandler { get; set; }
public Action<WebSocketConnectEventArgs> WebSocketHandler { get; set; }
@@ -64,11 +64,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer.NetListener
while (IsListening)
{
if (_listener == null) return;
+ _listenForNextRequest.Reset();
try
{
_listener.BeginGetContext(ListenerCallback, _listener);
- _listenForNextRequest.WaitOne();
+ _listenForNextRequest.Wait();
}
catch (Exception ex)
{
@@ -82,6 +83,8 @@ namespace MediaBrowser.Server.Implementations.HttpServer.NetListener
// Handle the processing of a request in here.
private void ListenerCallback(IAsyncResult asyncResult)
{
+ _listenForNextRequest.Set();
+
var listener = asyncResult.AsyncState as HttpListener;
HttpListenerContext context;
@@ -108,14 +111,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer.NetListener
_logger.Warn(errMsg);
return;
}
- finally
- {
- // Once we know we have a request (or exception), we signal the other thread
- // so that it calls the BeginGetContext() (or possibly exits if we're not
- // listening any more) method to start handling the next incoming request
- // while we continue to process this request on a different thread.
- _listenForNextRequest.Set();
- }
Task.Factory.StartNew(() => InitTask(context));
}