This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: 1.3.2: setsid() vs. signals
- To: cygwin-developers at cygwin dot com
- Subject: Re: 1.3.2: setsid() vs. signals
- From: Kazuhiro Fujieda <fujieda at jaist dot ac dot jp>
- Date: 05 Sep 2001 11:23:54 +0900
- References: <3B94BC33.CACAEAF4@trustcenter.de> <s1slmju76d5.fsf@jaist.ac.jp><20010904215335.D11902@redhat.com>
>>> On Tue, 4 Sep 2001 21:53:35 -0400
>>> Christopher Faylor <cgf@redhat.com> said:
> >This is a bug in Cygwin DLL 1.3.2 and also in the latest snapshot.
> >I will fix it in the next release.
>
> Does this mean that you're going to send in a patch for 1.3.3?
No, but I found the cause of his problem. That's the following
change of yours. It made the handler trigger SIGINT to the process
without its controlling terminal. I'd like to propose to revert it.
Index: exceptions.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/exceptions.cc,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -p -r1.79 -r1.80
--- exceptions.cc 2001/05/03 15:00:38 1.79
+++ exceptions.cc 2001/05/04 20:39:38 1.80
@@ -892,8 +892,8 @@ ctrl_c_handler (DWORD type)
tty_min *t = cygwin_shared->tty.get_tty (myself->ctty);
/* Ignore this if we're not the process group lead since it should be handled
*by* the process group leader. */
- if (!t->getpgid () || t->getpgid () != myself->pid ||
- (GetTickCount () - t->last_ctrl_c) < MIN_CTRL_C_SLOP)
+ if (t->getpgid () && (t->getpgid () != myself->pid ||
+ (GetTickCount () - t->last_ctrl_c) < MIN_CTRL_C_SLOP))
return TRUE;
else
/* Otherwise we just send a SIGINT to the process group and return TRUE (to indicate
____
| AIST Kazuhiro Fujieda <fujieda@jaist.ac.jp>
| HOKURIKU Center for Information Science
o_/ 1990 Japan Advanced Institute of Science and Technology