aboutsummaryrefslogtreecommitdiff
path: root/gdb/event-loop.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-06-21 01:11:46 +0100
committerPedro Alves <palves@redhat.com>2016-06-21 01:11:46 +0100
commit7c36c34e4c5c9438f17373a72773d741a17dc7b3 (patch)
tree1bb740078dd6809f3555c0dd0b3d918a357a93c2 /gdb/event-loop.c
parent73ab01a07dfef77a9d845be2ef87754435eeffa1 (diff)
downloadgdb-7c36c34e4c5c9438f17373a72773d741a17dc7b3.zip
gdb-7c36c34e4c5c9438f17373a72773d741a17dc7b3.tar.gz
gdb-7c36c34e4c5c9438f17373a72773d741a17dc7b3.tar.bz2
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.
Diffstat (limited to 'gdb/event-loop.c')
-rw-r--r--gdb/event-loop.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/event-loop.c b/gdb/event-loop.c
index 60ef2a5..fe28305 100644
--- a/gdb/event-loop.c
+++ b/gdb/event-loop.c
@@ -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);
}