diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cb5163d76a..6453ce9a91 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2007-02-09 Fred Fish + + Based on work by Apple Computer, Inc. + * event-top.c (async_request_quit): Call quit() whenever either + quit_flag is set or immediate_quit is set. + 2007-02-09 Gabriel Dos Reis * ada-lang.c (remove_out_of_scope_renamings): Change third parameter's @@ -115,6 +121,7 @@ 2007-02-08 Fred Fish + Based on work by Apple Computer, Inc. * 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. diff --git a/gdb/event-top.c b/gdb/event-top.c index 9a6c2fbc18..7765767c3d 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -997,14 +997,13 @@ void async_request_quit (gdb_client_data arg) { /* 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. */ + 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, unless immediate_quit is + set.*/ - if (quit_flag == 0) - return; - - quit (); + if (quit_flag || immediate_quit) + quit (); } #ifdef SIGQUIT