[newlib-cygwin] Cygwin: ctrl_c_handler: Use 64 bit timer

Corinna Vinschen corinna@sourceware.org
Sun Mar 24 21:13:00 GMT 2019


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

commit 5737045c00db0cf9462b556bf56fbfa15c9ba90c
Author: Corinna Vinschen <corinna@vinschen.de>
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 <corinna@vinschen.de>

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)



More information about the Cygwin-cvs mailing list