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