[newlib-cygwin] Cygwin: posix timers: Add support for CLOCK_REALTIME_ALARM/CLOCK_BOOTTIME_ALARM

Corinna Vinschen corinna@sourceware.org
Tue Jan 22 14:47:00 GMT 2019


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

commit 013e2bd9ecf85a8e7c94459aae17ad6d03bbcc31
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Tue Jan 22 15:45:58 2019 +0100

    Cygwin: posix timers: Add support for CLOCK_REALTIME_ALARM/CLOCK_BOOTTIME_ALARM
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/posix_timer.cc | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/winsup/cygwin/posix_timer.cc b/winsup/cygwin/posix_timer.cc
index d4f2575..8651c22 100644
--- a/winsup/cygwin/posix_timer.cc
+++ b/winsup/cygwin/posix_timer.cc
@@ -169,9 +169,8 @@ timer_tracker::thread_func ()
 	     interval.  Restart timer here with new due time. */
 	  if (interval > INT_MAX * (NS100PERSEC / MSPERSEC))
 	    {
-	      /* TODO: CLOCK_REALTIME_ALARM / CLOCK_BOOTTIME_ALARM
-		 See comment in arm_timer */
-	      BOOL Resume = FALSE;
+	      BOOLEAN Resume = (clock_id == CLOCK_REALTIME_ALARM
+				|| clock_id == CLOCK_BOOTTIME_ALARM);
 	      LARGE_INTEGER DueTime = { QuadPart: -interval };
 
 	      NtSetTimer (timer, &DueTime, NULL, NULL, Resume, 0, NULL);
@@ -386,10 +385,10 @@ timer_tracker::settime (int flags, const itimerspec *new_value,
 	  overrun_count_curr = 0;
 	  overrun_count = 0;
 	  overrun_event_running = OVR_EVENT_DISARMED;
-	  /* TODO: CLOCK_REALTIME_ALARM / CLOCK_BOOTTIME_ALARM
-	     Note: Advanced Power Settings -> Sleep -> Allow Wake Timers
-	     since W10 1709 */
-	  Resume = FALSE;
+	  /* Note: Advanced Power Settings -> Sleep -> Allow Wake Timers
+		   since W10 1709 */
+	  Resume = (clock_id == CLOCK_REALTIME_ALARM
+		    || clock_id == CLOCK_BOOTTIME_ALARM);
 	  if (interval > INT_MAX * (NS100PERSEC / MSPERSEC))
 	    Period = 0;
 	  else



More information about the Cygwin-cvs mailing list