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

commit 013e2bd9ecf85a8e7c94459aae17ad6d03bbcc31
Author: Corinna Vinschen <[email protected]>
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 <[email protected]>

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

Reply via email to