diff --git a/src/dev/serial/terminal.cc b/src/dev/serial/terminal.cc index 52dbb9ede6..d4108a372d 100644 --- a/src/dev/serial/terminal.cc +++ b/src/dev/serial/terminal.cc @@ -87,6 +87,10 @@ Terminal::ListenEvent::ListenEvent(Terminal *t, int fd, int e) void Terminal::ListenEvent::process(int revent) { + // As a consequence of being called from the PollQueue, we might + // have been called from a different thread. Migrate to "our" + // thread. + EventQueue::ScopedMigration migrate(term->eventQueue()); term->accept(); }