Dispose Listeners if they fail to start
This commit is contained in:
parent
7e125faa73
commit
5c6a53c491
|
|
@ -91,19 +91,33 @@ namespace Microsoft.AspNet.Server.Kestrel
|
||||||
public IDisposable CreateServer(string scheme, string host, int port, Func<Frame, Task> application)
|
public IDisposable CreateServer(string scheme, string host, int port, Func<Frame, Task> application)
|
||||||
{
|
{
|
||||||
var listeners = new List<Listener>();
|
var listeners = new List<Listener>();
|
||||||
foreach (var thread in Threads)
|
|
||||||
|
try
|
||||||
{
|
{
|
||||||
var listener = new Listener(Memory);
|
foreach (var thread in Threads)
|
||||||
listener.StartAsync(scheme, host, port, thread, application).Wait();
|
{
|
||||||
listeners.Add(listener);
|
var listener = new Listener(Memory);
|
||||||
|
|
||||||
|
listeners.Add(listener);
|
||||||
|
listener.StartAsync(scheme, host, port, thread, application).Wait();
|
||||||
|
}
|
||||||
|
return new Disposable(() =>
|
||||||
|
{
|
||||||
|
foreach (var listener in listeners)
|
||||||
|
{
|
||||||
|
listener.Dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return new Disposable(() =>
|
catch
|
||||||
{
|
{
|
||||||
foreach (var listener in listeners)
|
foreach (var listener in listeners)
|
||||||
{
|
{
|
||||||
listener.Dispose();
|
listener.Dispose();
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
throw;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue