diff --git a/repos/gems/src/server/ssh_terminal/server.cc b/repos/gems/src/server/ssh_terminal/server.cc index 49eff03210..c420b7d5e7 100644 --- a/repos/gems/src/server/ssh_terminal/server.cc +++ b/repos/gems/src/server/ssh_terminal/server.cc @@ -378,6 +378,12 @@ void Ssh::Server::detach_terminal(Ssh::Terminal &conn) auto invalidate_terminal = [&] (Session &sess) { if (sess.terminal != &conn) { return; } sess.terminal_detached = true; + + /* flush before destroying the terminal */ + Libc::with_libc([&] { + try { sess.terminal->send(sess.channel); } + catch (...) { } + }); }; _sessions.for_each(invalidate_terminal);