This is the mail archive of the
mailing list for the Cygwin project.
Re: bash/cmd CTRL-C problem...
On Thu, Jan 10, 2002 at 06:59:54PM +1100, Robert Collins wrote:
>> I was going back over this thread before checking in a change to see if
>> I'd missed something.
>> I just realized that I didn't address this concern. Don't know if it
>> matters but...
>> The difference between the SIG_IGN way and the "return TRUE" way is
>> that the SIG_IGN way stops the current process from responding to
>> a cygwin signal but still lets it respond to a Windows "signal". That
>> means that the code in ctrl_c_handle can do its job, if it has to.
>Huh? I actually did the reverse - returning TRUE only prevented
>responding to a windows signal, but allowed responding to a cygwin
Yep. Wrong behavior. The stub should respond to windows signals
while the child is initializing. Remember this discussion?
>>If we always "return TRUE" in the exec case, then there will be some
>>situations where the SIGINT is not delivered to the rest of the process
>>group since the code in ctrl_c_handler would be short circuited.
>I don't believe that is the case: Every console process attached to
>that console independently recieves the windows signal. Only one has
>been disabled. So the execing process's children will still recieve
>the windows signals and the cygwin signals.
The newly executed subprocess may not have yet set up ctrl_c_handler so
it will not do anything but die when CTRL-C comes in. The stub will
ignore the CTRL-C. That means that the rest of the processes in the
process group will not receive a CTRL-C.
>> My SIG_IGN "solution" is wrong, too, though. The SIG_IGN would be
>> inherited by the exec'ed process. Then the execed process would never
>> see a cygwin SIGINT signal.
>Yes. I still believe that return TRUE is a good solution... but if
>you've solved the obvious behaviour I'll be quite now :}.
I guess I'm having a hard time understanding why I couldn't just say
"race" and have you understand that there is a race but I'll stop
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html