This change is no-op, but good to have just in case
for the future.
volatile sig_atomic_t user_abort = false;
-#ifndef _WIN32
+#if !(defined(_WIN32) && !defined(__CYGWIN__))
/// If we were interrupted by a signal, we store the signal number so that
/// we can raise that signal to kill the program when all cleanups have
extern void signals_init(void);
-#if defined(_WIN32) || defined(__VMS)
+#if (defined(_WIN32) && !defined(__CYGWIN__)) || defined(__VMS)
# define signals_block() do { } while (0)
# define signals_unblock() do { } while (0)
#else
extern void signals_unblock(void);
#endif
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
# define signals_exit() do { } while (0)
#else
/// If user has sent us a signal earlier to terminate the process,