diff --git a/user/tb/interp.c b/user/tb/interp.c index e61e91c..a9af90b 100644 --- a/user/tb/interp.c +++ b/user/tb/interp.c @@ -239,7 +239,9 @@ bool interp_runstring(const char *string, InterpResult **res, bool logcmds) { processctl(app, PCTL_RUN, 0, 0, 0); - while(processctl(app, PCTL_POLLSTATE, 0, 0, 0) != 4); + while(processctl(app, PCTL_POLLSTATE, 0, 0, 0) != 4) { + schedrelease(); + } cleanup: for (size_t j = 0; j < argslen1; j++) { diff --git a/user/tb/main.c b/user/tb/main.c index 67570ff..46d5995 100644 --- a/user/tb/main.c +++ b/user/tb/main.c @@ -124,6 +124,8 @@ void do_mode_interactive(void) { uprintf(ANSIQ_SCR_CLR_ALL); goto begin; break; + } else { + schedrelease(); } if (b == '\n') {