/* Switch to the main UI, so diagnostics always go there. */
current_ui = main_ui;
- delete_file_handler (ui->input_fd);
+ ui->unregister_file_handler ();
if (main_ui == ui)
{
/* If stdin died, we may as well kill gdb. */
/* See top.h. */
void
-ui_register_input_event_handler (struct ui *ui)
+ui::register_file_handler ()
{
- add_file_handler (ui->input_fd, stdin_event_handler, ui,
- string_printf ("ui-%d", ui->num), true);
+ add_file_handler (input_fd, stdin_event_handler, this,
+ string_printf ("ui-%d", num), true);
}
/* See top.h. */
void
-ui_unregister_input_event_handler (struct ui *ui)
+ui::unregister_file_handler ()
{
- delete_file_handler (ui->input_fd);
+ delete_file_handler (input_fd);
}
/* Re-enable stdin after the end of an execution command in
if (ui->prompt_state == PROMPT_BLOCKED)
{
target_terminal::ours ();
- ui_register_input_event_handler (ui);
+ ui->register_file_handler ();
ui->prompt_state = PROMPT_NEEDED;
}
}
struct ui *ui = current_ui;
ui->prompt_state = PROMPT_BLOCKED;
- delete_file_handler (ui->input_fd);
+ ui->unregister_file_handler ();
}
\f
Another source is going to be the target program (inferior), but
that must be registered only when it actually exists (I.e. after
we say 'run' or after we connect to a remote target. */
- ui_register_input_event_handler (ui);
+ ui->register_file_handler ();
}
/* Disable command input through the standard CLI channels. Used in
if (ui->command_editing)
gdb_rl_callback_handler_remove ();
- delete_file_handler (ui->input_fd);
+ ui->unregister_file_handler ();
}
scoped_segv_handler_restore::scoped_segv_handler_restore (segv_handler_t new_handler)
ptid_t call_thread_ptid = call_thread->ptid;
int was_running = call_thread->state == THREAD_RUNNING;
- delete_file_handler (current_ui->input_fd);
+ current_ui->unregister_file_handler ();
scoped_restore restore_in_infcall
= make_scoped_restore (&call_thread->control.in_infcall, 1);
state again here. In other cases, stdin will be re-enabled by
inferior_event_handler, when an exception is thrown. */
if (current_ui->prompt_state == PROMPT_BLOCKED)
- delete_file_handler (current_ui->input_fd);
+ current_ui->unregister_file_handler ();
else
- ui_register_input_event_handler (current_ui);
+ current_ui->register_file_handler ();
/* If the infcall does NOT succeed, normal_stop will have already
finished the thread states. However, on success, normal_stop
{
target_terminal::ours ();
gdb::observers::sync_execution_done.notify ();
- ui_register_input_event_handler (ui);
+ ui->register_file_handler ();
}
}
/* The current ui_out. */
struct ui_out *m_current_uiout;
+
+ /* Register the UI's input file descriptor in the event loop. */
+ void register_file_handler ();
+
+ /* Unregister the UI's input file descriptor from the event loop. */
+ void unregister_file_handler ();
};
/* The main UI. This is the UI that is bound to stdin/stdout/stderr.
return ui_range (ui_list);
}
-/* Register the UI's input file descriptor in the event loop. */
-extern void ui_register_input_event_handler (struct ui *ui);
-
-/* Unregister the UI's input file descriptor from the event loop. */
-extern void ui_unregister_input_event_handler (struct ui *ui);
-
/* From top.c. */
extern bool confirm;
extern int inhibit_gdbinit;
m_ui (NULL)
{
target_terminal::ours ();
- ui_register_input_event_handler (current_ui);
+ current_ui->register_file_handler ();
if (current_ui->prompt_state == PROMPT_BLOCKED)
m_ui = current_ui;
}
~scoped_input_handler ()
{
if (m_ui != NULL)
- ui_unregister_input_event_handler (m_ui);
+ m_ui->unregister_file_handler ();
}
DISABLE_COPY_AND_ASSIGN (scoped_input_handler);