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:
parent
4998c1dfb8
commit
5f960e007d
2 changed files with 21 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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 ();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue