From b754925368acfc51e59b2cc376db8dd883a64d63 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Tue, 14 Jul 2020 10:06:24 -0700 Subject: [PATCH] Add a timeout to the docker command (#578) --- src/Microsoft.Tye.Core/DockerDetector.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.Tye.Core/DockerDetector.cs b/src/Microsoft.Tye.Core/DockerDetector.cs index 19d5aca1..642421ba 100644 --- a/src/Microsoft.Tye.Core/DockerDetector.cs +++ b/src/Microsoft.Tye.Core/DockerDetector.cs @@ -3,12 +3,15 @@ // See the LICENSE file in the project root for more information. using System; +using System.Threading; using System.Threading.Tasks; namespace Microsoft.Tye { public class DockerDetector { + private static readonly TimeSpan Timeout = TimeSpan.FromSeconds(10); + public static DockerDetector Instance { get; } = new DockerDetector(); private DockerDetector() @@ -25,7 +28,7 @@ namespace Microsoft.Tye { try { - await ProcessUtil.RunAsync("docker", "version", throwOnError: false); + await ProcessUtil.RunAsync("docker", "version", throwOnError: false, cancellationToken: new CancellationTokenSource(Timeout).Token); return true; } catch (Exception) @@ -39,7 +42,7 @@ namespace Microsoft.Tye { try { - var result = await ProcessUtil.RunAsync("docker", "version", throwOnError: false); + var result = await ProcessUtil.RunAsync("docker", "version", throwOnError: false, cancellationToken: new CancellationTokenSource(Timeout).Token); return result.ExitCode == 0; } catch (Exception)