* remote.c (remote_wait): Handle SIGINT between packets.

(remote_async_wait): Likewise.
This commit is contained in:
Daniel Jacobowitz 2008-01-23 20:43:30 +00:00
parent e4967d85cb
commit 9fa2223dcd
2 changed files with 22 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2008-01-23 Daniel Jacobowitz <dan@codesourcery.com>
* remote.c (remote_wait): Handle SIGINT between packets.
(remote_async_wait): Likewise.
2008-01-23 Vladimir Prus <vladimir@codesourcery.com>
Chris Demetriou <cgd@google.com>

View File

@ -3204,6 +3204,13 @@ remote_wait (ptid_t ptid, struct target_waitstatus *status)
char *buf, *p;
ofunc = signal (SIGINT, remote_interrupt);
/* If the user hit C-c before this packet, or between packets,
pretend that it was hit right here. */
if (quit_flag)
{
quit_flag = 0;
remote_interrupt (SIGINT);
}
getpkt (&rs->buf, &rs->buf_size, 1);
signal (SIGINT, ofunc);
@ -3413,7 +3420,16 @@ remote_async_wait (ptid_t ptid, struct target_waitstatus *status)
char *buf, *p;
if (!target_is_async_p ())
ofunc = signal (SIGINT, remote_interrupt);
{
ofunc = signal (SIGINT, remote_interrupt);
/* If the user hit C-c before this packet, or between packets,
pretend that it was hit right here. */
if (quit_flag)
{
quit_flag = 0;
remote_interrupt (SIGINT);
}
}
/* FIXME: cagney/1999-09-27: If we're in async mode we should
_never_ wait for ever -> test on target_is_async_p().
However, before we do that we need to ensure that the caller