Subject: bug#11273: 24.0.94; quitting gdb

From: Troels Nielsen <[email-masked]>
Date: Thu, 19 Apr 2012 20:22:56 +0200

Chong Yidong writes:
 > Glenn Morris <[email-masked]> writes:
 > 
 > > Chong Yidong wrote:
 > >
 > >> In the meantime, I installed a workaround to explicitly call
 > >> delete-process on the pty in the sentinel of the main gdb process.
 > >
 > > Maybe you fixed bug#4437 then?
 > 
 > Aha, looks like the situation is this:
 > 
 > In Bug#4437, Nick Roberts proposed a patch to process.c to avoid sending
 > a SIGCHLD to itself when it receives an EIO errno.  However, he noted
 > that this
 > 
 >    means that status_notify isn't called from
 >    wait_reading_process_output because this call is conditioned on
 >    select which returns a positive value (presumably because the pty's
 >    file descriptor hasn't been cleared).
 > 
 > which is the problem I noticed.  Nick didn't commit the patch at the
 > time.
 > 
 > In Bug#10933, Troels Nielsen independently proposed the same patch,
 > which was committed by Stefan on 2012-03-23.
 > 
 > The question is what to do about the problem.  I didn't test this, but
 > it may be that the patch causes ALL process sentinels to be blocked
 > while the gdb process is running, which is kinda unacceptable.

Hi Chong

I've looked into the issue more deeply and I think my suggested patch
is most certainly wrong. The PTY somehow continously will tell select
it has data available, but when emacs_read tries to read it nothing
but an error and errno=IO is returned.

I will look into a different way of solving #10933, but I think for
now my changes should be removed.

Regards
Troels