Reviewed by Daniel Jacobowitz <drow@false.org>

2008-02-08  Fred Fish  <fnf@specifix.com>
	* event-top.c (handle_sigint): Set quit_flag.
	(async_request_quit): Don't set quit_flag.  Avoid calling quit()
	if quit_flag has already been reset.
This commit is contained in:
Fred Fish 2007-02-08 16:25:25 +00:00
parent 4998c1dfb8
commit 5f960e007d
2 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2008-02-08 Fred Fish <fnf@specifix.com>
* event-top.c (handle_sigint): Set quit_flag.
(async_request_quit): Don't set quit_flag. Avoid calling quit()
if quit_flag has already been reset.
2007-02-08 Daniel Jacobowitz <dan@codesourcery.com>
* ser-mingw.c (pipe_windows_close): Move variable initialization back

View file

@ -961,6 +961,13 @@ handle_sigint (int sig)
{
signal (sig, handle_sigint);
/* We could be running in a loop reading in symfiles or something so
it may be quite a while before we get back to the event loop. So
set quit_flag to 1 here. Then if QUIT is called before we get to
the event loop, we will unwind as expected. */
quit_flag = 1;
/* If immediate_quit is set, we go ahead and process the SIGINT right
away, even if we usually would defer this to the event loop. The
assumption here is that it is safe to process ^C immediately if
@ -989,7 +996,14 @@ handle_sigterm (int sig)
void
async_request_quit (gdb_client_data arg)
{
quit_flag = 1;
/* If the quit_flag has gotten reset back to 0 by the time we get
back here, that means that an exception was thrown to unwind
the current command before we got back to the event loop. So
there is no reason to call quit again here. */
if (quit_flag == 0)
return;
quit ();
}