public bool Stop(HostControl hostControl) { try { cancellationTokenSource.Cancel(); Task.WaitAll(new[] { wardenServerTask }, (int)TimeSpan.FromSeconds(25).TotalMilliseconds); if (wardenServer.ClientListenException != null) { log.ErrorException(wardenServer.ClientListenException); } containerManager.Dispose(); } catch (Exception ex) { log.ErrorException(ex); } return(true); }
public bool Stop(HostControl hostControl) { log.Info("Stopping Warden"); try { cancellationTokenSource.Cancel(); Task.WaitAll(new[] { wardenServerTask }, (int)TimeSpan.FromSeconds(25).TotalMilliseconds); if (wardenServer.ClientListenException != null) { log.Log(LogLevel.Error, String.Empty, wardenServer.ClientListenException); } var destroyTasks = new List <Task>(); foreach (ContainerHandle handle in containerManager.Handles) { try { log.Info("Destroying container handle {0}", handle.ToString()); destroyTasks.Add(containerManager.DestroyContainerAsync(handle)); } catch (Exception e) { log.Log(LogLevel.Error, String.Empty, e); } } Task.WaitAll(destroyTasks.ToArray(), 2000); containerManager.Dispose(); } catch (Exception ex) { log.Log(LogLevel.Error, String.Empty, ex); } return(true); }