When timeouts are used for prompts the read from the prompt provider happens on a background thread and is a blocking read. If the timeout is hit the thread doing that read is cancelled but may still be stuck in that blocking read and never actually terminate.
This means if there are subsequent prompts they may not read anything because they are queued up behind the blocked read. This necessitates users having to hit the return key extra times, or enter their response multiple times.
Might be useful to make this interruptible, or otherwise track unfinished reads and prevent subsequent prompts on the provider.
Originally noted in reviewing #125
When timeouts are used for prompts the read from the prompt provider happens on a background thread and is a blocking read. If the timeout is hit the thread doing that read is cancelled but may still be stuck in that blocking read and never actually terminate.
This means if there are subsequent prompts they may not read anything because they are queued up behind the blocked read. This necessitates users having to hit the return key extra times, or enter their response multiple times.
Might be useful to make this interruptible, or otherwise track unfinished reads and prevent subsequent prompts on the provider.