From 71631b248ad8345851b73ebbc181bc058fdb4ccf Mon Sep 17 00:00:00 2001
From: Caelan Sayler <git@caesay.com>
Date: Wed, 31 Jan 2024 11:02:01 +0000
Subject: [PATCH] Fix potential deadlock when cancelling prompts (#1439)

---
 src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs | 1 +
 src/Spectre.Console/Prompts/List/ListPrompt.cs                | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs b/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs
index f7ec487..f5299ad 100644
--- a/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs
+++ b/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs
@@ -19,6 +19,7 @@ public static partial class AnsiConsoleExtensions
 
         while (true)
         {
+            cancellationToken.ThrowIfCancellationRequested();
             var rawKey = await console.Input.ReadKeyAsync(true, cancellationToken).ConfigureAwait(false);
             if (rawKey == null)
             {
diff --git a/src/Spectre.Console/Prompts/List/ListPrompt.cs b/src/Spectre.Console/Prompts/List/ListPrompt.cs
index 5db80c2..398a315 100644
--- a/src/Spectre.Console/Prompts/List/ListPrompt.cs
+++ b/src/Spectre.Console/Prompts/List/ListPrompt.cs
@@ -48,6 +48,7 @@ internal sealed class ListPrompt<T>
 
             while (true)
             {
+                cancellationToken.ThrowIfCancellationRequested();
                 var rawKey = await _console.Input.ReadKeyAsync(true, cancellationToken).ConfigureAwait(false);
                 if (rawKey == null)
                 {