Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <3C3B3147.73BF95B5@oculustech.com> Date: Tue, 08 Jan 2002 12:49:59 -0500 From: Timothy Wall Reply-To: twall AT oculustech DOT com Organization: Oculus Technologies X-Mailer: Mozilla 4.74 (Macintosh; U; PPC) X-Accept-Language: en MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Control-C, SIGINT, ConsoleCtrlHandler... References: <3C3B2D03 DOT F0C73746 AT oculustech DOT com> <20020108174737 DOT GC24431 AT redhat DOT com> Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit Unfortunately, I'm using VC++, since we have to link against some other M$ stuff. Thanks for the pointer. T. Christopher Faylor wrote: > If you are writing cygwin programs, don't use windows signal mechanisms > like SetConsoleCtrlHandler. Just use signal()/kill(), et al. > > If your program does not use cygwin then investigate the currently active > thread "bash/cmd CTRL-C problem...". > > cgf > > On Tue, Jan 08, 2002 at 12:31:47PM -0500, Timothy Wall wrote: > >I'm trying to get some consistent behavior under the command shell and cygwin, > >tho' without much luck so far. I'd like to know if there's a canonical > >SIGINT/SIGTERM handling convention for console processes (taking cygwin into > >account, or barring that for invocations in cmd.exe only). > > > >The important thing for my program is that it perform certain cleanup > >operations on exit (normally taken care of with a signal handler attached to > >SIGINT/SIGTERM). > > > >Under the cmd.exe, the handler usually gets called when it's installed with > >signal() or with SetConsoleCtrlHandler (there have been cases where it does > >not, but I can't reliably reproduce them...). > > > >Under bash, however, it looks like the consolectrlhandler never even gets a > >chance to finish before the process is wiped. Installing with signal() also > >seems that the process is wiped before the cleanup gets a chance to run. > > > >(the handler sets a flag which the main thread uses to determine that it's > >time to exit). -- 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/