This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: EINTR in procfs_wait
- To: Fernando Nasser <fnasser at redhat dot com>
- Subject: Re: RFA: EINTR in procfs_wait
- From: Michael Snyder <msnyder at cygnus dot com>
- Date: Wed, 11 Apr 2001 16:44:53 -0700
- CC: gdb-patches at sources dot redhat dot com
- Organization: Red Hat
- References: <3AD32106.12A0443E@redhat.com>
Fernando Nasser wrote:
>
> Folks,
>
> I got this patch and it seems that we did forget to test for EINTR in
> procfs_wait(). It looks like an "obvious fix" but I would like someone
> else to double check it.
OK, I've looked at the old procfs module, and it did indeed have a similar
test in a similar (though not identical) context. The change makes sense
to me. Fernando, do you want to do the honors?
>
> Thanks in advance.
>
> Fernando
>
> 2001-04-05 Adam Mirowski <Adam.Mirowski@Sun.COM>
>
> Fixed Insight on Solaris. It was not possible to debug a process
> because of EINTR "errors".
> * procfs.c: (procfs_wait): if proc_wait_for_stop() fails
> with EINTR, retry the call.
>
> Index: gdb/procfs.c
> ------- procfs.c -------
> *** /tmp/dMKayx_ Tue Apr 10 16:20:54 2001
> --- procfs.c Thu Apr 5 22:21:40 2001
> ***************
> *** 3518,3531 ****
> --- 3518,3533 ----
>
> if (retval != PIDGET (inferior_pid)) /* wrong child? */
> error ("procfs: couldn't stop process %d: wait returned %d\n",
> inferior_pid, retval);
> /* FIXME: might I not just use waitpid?
> Or try find_procinfo to see if I know about this child? */
> }
> + else if (errno == EINTR)
> + goto wait_again;
> else
> {
> /* Unknown error from wait_for_stop. */
> proc_error (pi, "target_wait (wait_for_stop)", __LINE__);
> }
> }
> else