Cygwin: posix timers: implement timer_getoverrun

- set DELAYTIMER_MAX to INT_MAX
- make sure to set siginfo_t::si_overrun, as on Linux

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2019-01-12 21:19:52 +01:00
parent 961be8d726
commit 9e295a8d19
10 changed files with 159 additions and 13 deletions

View File

@@ -22,6 +22,9 @@ class timer_tracker
HANDLE syncthread;
int64_t interval_us;
int64_t sleepto_us;
LONG event_running;
LONG overrun_count_curr;
LONG64 overrun_count;
bool cancel ();
@@ -29,10 +32,14 @@ class timer_tracker
timer_tracker (clockid_t, const sigevent *);
~timer_tracker ();
inline bool is_timer_tracker () const { return magic == TT_MAGIC; }
inline sigevent_t *sigevt () { return &evp; }
inline int getoverrun () const { return overrun_count_curr; }
void gettime (itimerspec *);
int settime (int, const itimerspec *, itimerspec *);
int clean_and_unhook ();
LONG arm_event ();
LONG disarm_event ();
DWORD thread_func ();
static void fixup_after_fork ();