Mail Archives: cygwin/2001/12/21/05:08:19
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/
- Raw text -