This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Control-C, SIGINT, ConsoleCtrlHandler...

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

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:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]