diff --git a/Kernel/TTY/TTY.cpp b/Kernel/TTY/TTY.cpp index 6d957e6453..a7777e4320 100644 --- a/Kernel/TTY/TTY.cpp +++ b/Kernel/TTY/TTY.cpp @@ -109,9 +109,6 @@ bool TTY::is_werase(u8 ch) const void TTY::emit(u8 ch) { if (should_generate_signals()) { - if (should_flush_on_signal()) - flush_input(); - if (ch == m_termios.c_cc[VINTR]) { dbg() << tty_name() << ": VINTR pressed!"; generate_signal(SIGINT); @@ -208,6 +205,8 @@ void TTY::generate_signal(int signal) { if (!pgid()) return; + if (should_flush_on_signal()) + flush_input(); dbg() << tty_name() << ": Send signal " << signal << " to everyone in pgrp " << pgid(); InterruptDisabler disabler; // FIXME: Iterate over a set of process handles instead? Process::for_each_in_pgrp(pgid(), [&](auto& process) {