Always run async signal handlers in the main UI

Async signal handlers have no connection to whichever was the current
UI, and thus always run on the main one.

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

	* event-loop.c: Include top.h.
	(invoke_async_signal_handlers): Switch to the main UI.
	* event-top.c (main_ui_): Update comment.
	(main_ui): New global.
	* top.h (main_ui): Declare.
This commit is contained in:
Pedro Alves
2016-06-21 01:11:46 +01:00
parent 73ab01a07d
commit 7c36c34e4c
3 changed files with 11 additions and 3 deletions

View File

@@ -35,6 +35,7 @@
#include "gdb_sys_time.h"
#include "gdb_select.h"
#include "observer.h"
#include "top.h"
/* Tell create_file_handler what events we are interested in.
This is used by the select version of the event loop. */
@@ -967,6 +968,9 @@ invoke_async_signal_handlers (void)
break;
any_ready = 1;
async_handler_ptr->ready = 0;
/* Async signal handlers have no connection to whichever was the
current UI, and thus always run on the main one. */
current_ui = main_ui;
(*async_handler_ptr->proc) (async_handler_ptr->client_data);
}