delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/01/04/06:53:10

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <02f701c19516$5212afa0$c51811ac@brokat.de>
From: "Michael Rumpf" <michael AT rumpfonline DOT de>
To: <cygwin AT cygwin DOT com>
References: <00f201c18922$2783b180$c51811ac AT brokat DOT de> <003c01c18936$55ca5fd0$c51811ac AT brokat DOT de> <05cb01c18a07$85d72c40$c51811ac AT brokat DOT de>
Subject: Re: bash/cmd CTRL-C problem...
Date: Fri, 4 Jan 2002 12:52:43 +0100
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

------=_NextPart_000_02F4_01C1951E.B32D6A20
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hi Corinna,

I further investigated the bash CTRL-C problem and found out that pressing
CTRL-C in the bash is "nearly" the same as CTRL-BREAK. I tried all the
CYGWIN=tty/notty/<empty> combinations but that did not change anything...

Test application:
I have several sample applications, one in Java (myclass.java) and one in
C/C++ (myclass.cpp) which are forked via the Win32API call CreateProcess()
from the main application (signals.cpp). The main application installs
signal handlers for SIGINT and SIGBREAK. In the SIGINT case the code in the
main thread should be further executed when the signal handler finishes. In
the SIGBREAK case the process should just stop and also stop all the forked
children. The continuation of the process in the SIGINT case is crucial
because the handler sets a flag which causes the main thread to leave a loop
and send the child processes a CTRL-BREAK event. The CTRL-BREAK event is
important because the process has been created with the flag
CREATE_PROCESS_GROUP and only CTRL_BREAK can be used to terminate the
process (see
http://msdn.microsoft.com/library/en-us/dllproc/prothred_9dpv.asp:
CreateProcess disables the CTRL-C signal handler for processes created as a
process group). The problem is that the bash does not continue executing the
main thread of the process after the handling of SIGINT, the process
terminates without being able to send the termination message
(GenerateConsoleCtrlEvent) to the child processes. The main process stops
but the child process continue to live (You can see that the child process
is still running as it writes dots "." to the console). When pressing
CTRL-BREAK the behaviour is as it should be, the main thread is not further
executed and the main process and all the child processes are stopped.

The cmd shell works as it should be. CTRL-BREAK stops everything immediatly
and CTRL-C continues with the main thread after the signal was handled.

I guess it is worth mentioning that I don't use any of the Cygwin libc
stuff. The apps are linked against MS runtime libs. The application is just
started from the bash (I can't switch to another runtime lib as our project
is huge and only the MS runtime is officially supported). I use the bash for
convenience reasons as we support several UNIX platforms where the bash is
our standard shell. Only under Win2K we "officially" use the cmd shell
because of the broken signal handling...

You can reproduce the problem with the sample applications attached. You
need to tweak the paths in the Makefile and the path to the Java VM in the
file signals.cpp. I also attached an output of "cygcheck -s -v -h" to the
mail.

Michael

----- Original Message -----
From: "Michael Rumpf" <michael AT rumpfonline DOT de>
To: <cygwin AT cygwin DOT com>
Sent: Friday, December 21, 2001 11:09 AM
Subject: Re: bash/cmd CTRL-C problem...


> Am I the only one having problems with this, or is this simply the wrong
> list to ask a question about the Cygwin bash... ??
>
> Michael
>
> ----- Original Message -----
> From: "Michael Rumpf" <michael AT rumpfonline DOT de>
> To: <cygwin AT cygwin DOT com>
> Sent: Thursday, December 20, 2001 10:11 AM
> Subject: Re: bash/cmd CTRL-C problem...
>
>
> > Hi,
> >
> > sorry for following up myself, but I found out that Cygwin equally
handles
> > CTRL-BREAK and CTRL-C by sending a SIGINT to the process.
> > See http://groups.yahoo.com/group/gnu-win32/message/27643 (last
sentence).
> > This seems to be the source of the problem.
> > CTRL-BREAK under the cmd shell terminates the process after handling the
> > signal without further executing any code. The bad thing is that under
> bash
> > the same behaviour follows from pressing CTRL-BREAK  _and_ CTRL-C !!
> >
> > If this is a design issue, can someone please explain what the reasons
> > are...
> >
> > We have an application that forks other processes. The main thread is
> > waiting for the signal handler to return in order to cleanly stop the
> child
> > processes. By just stopping the parent process the child processes keep
> > running and I have to kill them manually each time I press CTRL-C. The
> same
> > application is working fine under windows cmd shell and bash under Linux
,
> > HP-UX 10/11, AIX4.x, and SunOS 2.5+...
> >
> > Please help, I don't want to use the stupid windows cmd shell.... ;-)
> >
> > Michael
> >
> > ----- Original Message -----
> > From: "Michael Rumpf" <michael AT rumpfonline DOT de>
> > To: <cygwin AT cygwin DOT com>
> > Sent: Thursday, December 20, 2001 7:47 AM
> > Subject: bash/cmd CTRL-C problem...
> >
> >
> > > Hi,
> > >
> > > I'm new to the list and I don't know if this problem is already
solved,
> > but
> > > I couldn't find a hint neither on the archives nor on the FAQ or
> somewhere
> > > else on the net.
> > >
> > > My problem is related to bash/cmd and signal handling.
> > > In my app I installed a signal handler for SIGINT. The app is going
into
> a
> > > wait loop and waiting for the exit flag from the signal handler to be
> set.
> > >
> > > When pressing CTRL-C in the windows cmd shell the application
continues
> > > normally after the signal handler has been caught. Under bash the
signal
> > > handler is also correctly called, but after that the app is exiting
> > > immediatly, i.e. not continuing with the code.
> > > Here is the source:
> > >
> > >
> >
>
////////////////////////////////////////////////////////////////////////////
> > > /////////////////
> > > #include <windows.h>
> > > #include <stdio.h>
> > > #include <signal.h>
> > >
> > > bool loop = true;
> > >
> > > extern "C" void signalHandler(int sig)
> > > {
> > >    switch( sig )
> > >    {
> > >       case SIGINT:  // == 2
> > >          printf("SIGINT=%d\n",sig);
> > >          break;
> > >       default:
> > >          printf("default=%d\n",sig);
> > >          break;
> > >    };
> > >    loop=false;
> > > }
> > >
> > > int main(int argc, char* argv[])
> > > {
> > >    if (signal( SIGINT , signalHandler ) == SIG_ERR)
> > >       return -1;
> > >    printf("### ctrlbreak: Waiting now...\n");
> > >    while(loop)
> > >      Sleep ((DWORD) 1000) ;
> > >    printf("### ctrlbreak: Finished waiting now...\n");
> > >    return 0;
> > > }
> > >
> >
>
////////////////////////////////////////////////////////////////////////////
> > > /////////////////
> > >
> > > Here the the output of the app under Win2K/bash:
> > > // bash                2.05a-2
> > > $ ./ctrlbreak.exe
> > > ### ctrlbreak: Waiting now...
> > > SIGINT=2
> > >
> > >
> > > // GNU bash, version 2.02.1(2)-release (i586-pc-cygwin32) B20.1
> > > bash-2.02$ ./ctrlbreak
> > > ### ctrlbreak: Waiting now...
> > > SIGINT=2
> > >
> > > // cmd.exe Win2k SP2
> > > ### ctrlbreak: Waiting now...
> > > SIGINT=2
> > > ### ctrlbreak: Finished waiting now...
> > >
> > >
> > > You can see that under the cmd shell the text "Finished waiting
now..."
> is
> > > printed which does not come out under the bash. The app is not linked
> > > against any cygwin library. It is a plain VC++ console application.
But
> > when
> > > I compile with gcc from the cygwin package I have the same result.
> > > Any hint would be greatly appreciated...
> > >
> > > Michael
> > >
> > > PS: I just downloaded the latest stable version 1.3.6 today...
> > >
> > >
> > >
> > > --
> > > Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> > > Bug reporting:         http://cygwin.com/bugs.html
> > > Documentation:         http://cygwin.com/docs.html
> > > FAQ:                   http://cygwin.com/faq/
> > >
> > >
> >
> >
> > --
> > Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> > Bug reporting:         http://cygwin.com/bugs.html
> > Documentation:         http://cygwin.com/docs.html
> > FAQ:                   http://cygwin.com/faq/
> >
>
>
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Bug reporting:         http://cygwin.com/bugs.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
>
>

------=_NextPart_000_02F4_01C1951E.B32D6A20
Content-Type: application/x-zip-compressed;
	name="Cygcheck.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="Cygcheck.zip"

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
dFBLBQYAAAAAAQABADoAAABdDwAAAAA=

------=_NextPart_000_02F4_01C1951E.B32D6A20
Content-Type: application/x-zip-compressed;
	name="Signals.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="Signals.zip"

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
AAAFAAUAFAEAAJgNAAAAAA==


------=_NextPart_000_02F4_01C1951E.B32D6A20
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
------=_NextPart_000_02F4_01C1951E.B32D6A20--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019