diff --git a/src/user/libterm/readline.c b/src/user/libterm/readline.c
index b37801d..fdb61a1 100644
--- a/src/user/libterm/readline.c
+++ b/src/user/libterm/readline.c
@@ -73,6 +73,7 @@ uint32_t read_line(char *sz, uint32_t max_length, const char *prompt) {
       sz[l] = '\0';
       term_add_char('\n');
       term_paint();
+      _yield_task();
       return l;
     default:
       if (l == max_length)