Make input_fd be per UI
authorPedro Alves <palves@redhat.com>
Tue, 21 Jun 2016 00:11:47 +0000 (01:11 +0100)
committerPedro Alves <palves@redhat.com>
Tue, 21 Jun 2016 00:11:47 +0000 (01:11 +0100)
commit41fd2b0f5d958fe3056da5c7af4032b1b99d726f
tree0b6cc80673dae6a9d7eadbe3a8422cb175fc437a
parentf38d3ad186f1820596743a04b7394b0749942501
Make input_fd be per UI

And with that, we can switch the current UI to the UI whose input
descriptor woke up the event loop.  IOW, if the user types in UI 2,
the event loop wakes up, switches to UI 2, and processes the input.
Next the user types in UI 3, the event loop wakes up and switches to
UI 3, etc.

gdb/ChangeLog:
2016-06-21  Pedro Alves  <palves@redhat.com>

* event-top.c (input_fd): Delete.
(stdin_event_handler): Switch to the UI whose input descriptor got
the event.  Adjust to per-UI input_fd.
(gdb_setup_readline): Don't set the input_fd global.  Adjust to
per-UI input_fd.
(gdb_disable_readline): Adjust to per-UI input_fd.
* event-top.h (input_fd): Delete declaration.
* linux-nat.c (linux_nat_terminal_inferior): Don't remove input_fd
from the event-loop here.
(linux_nat_terminal_ours): Don't register input_fd in the
event-loop here.
* main.c (captured_main): Adjust to per-UI input_fd.
* remote.c (remote_terminal_inferior): Don't remove input_fd from
the event-loop here.
(remote_terminal_ours): Don't register input_fd in the event-loop
here.
* target.c: Include top.h and event-top.h.
(target_terminal_inferior): Remove input_fd from the event-loop
here.
(target_terminal_ours): Register input_fd in the event-loop.
* top.h (struct ui) <input_fd>: New field.
gdb/ChangeLog
gdb/event-top.c
gdb/event-top.h
gdb/linux-nat.c
gdb/main.c
gdb/remote.c
gdb/target.c
gdb/top.h