https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5737045c00db0cf9462b556bf56fbfa15c9ba90c

commit 5737045c00db0cf9462b556bf56fbfa15c9ba90c
Author: Corinna Vinschen <[email protected]>
Date:   Sun Mar 24 22:13:00 2019 +0100

    Cygwin: ctrl_c_handler: Use 64 bit timer
    
    Just don't use GetTickCount for obvious reasons
    
    Signed-off-by: Corinna Vinschen <[email protected]>

Diff:
---
 winsup/cygwin/exceptions.cc | 6 +++---
 winsup/cygwin/tty.h         | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 491eedb..da4348f 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1134,7 +1134,7 @@ ctrl_c_handler (DWORD type)
      handled *by* the process group leader. */
   if (t && (!have_execed || have_execed_cygwin)
       && t->getpgid () == myself->pid &&
-      (GetTickCount () - t->last_ctrl_c) >= MIN_CTRL_C_SLOP)
+      (GetTickCount64 () - t->last_ctrl_c) >= MIN_CTRL_C_SLOP)
     /* Otherwise we just send a SIGINT to the process group and return TRUE
        (to indicate that we have handled the signal).  At this point, type
        should be a CTRL_C_EVENT or CTRL_BREAK_EVENT. */
@@ -1144,9 +1144,9 @@ ctrl_c_handler (DWORD type)
       if (type == CTRL_BREAK_EVENT
          && t->ti.c_cc[VINTR] == 3 && t->ti.c_cc[VQUIT] == 3)
        sig = SIGQUIT;
-      t->last_ctrl_c = GetTickCount ();
+      t->last_ctrl_c = GetTickCount64 ();
       t->kill_pgrp (sig);
-      t->last_ctrl_c = GetTickCount ();
+      t->last_ctrl_c = GetTickCount64 ();
       return TRUE;
     }
 
diff --git a/winsup/cygwin/tty.h b/winsup/cygwin/tty.h
index 362ae74..9aee43b 100644
--- a/winsup/cygwin/tty.h
+++ b/winsup/cygwin/tty.h
@@ -42,7 +42,7 @@ public:
   pid_t pgid;
   bool output_stopped;         /* FIXME: Maybe do this with a mutex someday? */
   fh_devices ntty;
-  DWORD last_ctrl_c;           /* tick count of last ctrl-c */
+  ULONGLONG last_ctrl_c;       /* tick count of last ctrl-c */
   bool is_console;
 
   IMPLEMENT_STATUS_FLAG (bool, initialized)

Reply via email to