Cygwin: posix timers: some cleanup
- use int64_t instead of long long - make is_timer_tracker const - improve copyright header comment Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
92cbaa9f23
commit
961be8d726
|
@ -1,4 +1,4 @@
|
||||||
/* timer.cc
|
/* timer.cc: posix timers
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -87,10 +87,10 @@ timer_tracker::timer_tracker (clockid_t c, const sigevent *e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline long long
|
static inline int64_t
|
||||||
timespec_to_us (const timespec& ts)
|
timespec_to_us (const timespec& ts)
|
||||||
{
|
{
|
||||||
long long res = ts.tv_sec;
|
int64_t res = ts.tv_sec;
|
||||||
res *= USPERSEC;
|
res *= USPERSEC;
|
||||||
res += (ts.tv_nsec + (NSPERSEC/USPERSEC) - 1) / (NSPERSEC/USPERSEC);
|
res += (ts.tv_nsec + (NSPERSEC/USPERSEC) - 1) / (NSPERSEC/USPERSEC);
|
||||||
return res;
|
return res;
|
||||||
|
@ -99,11 +99,11 @@ timespec_to_us (const timespec& ts)
|
||||||
DWORD
|
DWORD
|
||||||
timer_tracker::thread_func ()
|
timer_tracker::thread_func ()
|
||||||
{
|
{
|
||||||
long long now;
|
int64_t now;
|
||||||
long long cur_sleepto_us = sleepto_us;
|
int64_t cur_sleepto_us = sleepto_us;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
long long sleep_us;
|
int64_t sleep_us;
|
||||||
LONG sleep_ms;
|
LONG sleep_ms;
|
||||||
/* Account for delays in starting thread
|
/* Account for delays in starting thread
|
||||||
and sending the signal */
|
and sending the signal */
|
||||||
|
@ -260,8 +260,8 @@ timer_tracker::gettime (itimerspec *ovalue)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ovalue->it_interval = it_interval;
|
ovalue->it_interval = it_interval;
|
||||||
long long now = get_clock (clock_id)->usecs ();
|
int64_t now = get_clock (clock_id)->usecs ();
|
||||||
long long left_us = sleepto_us - now;
|
int64_t left_us = sleepto_us - now;
|
||||||
if (left_us < 0)
|
if (left_us < 0)
|
||||||
left_us = 0;
|
left_us = 0;
|
||||||
ovalue->it_value.tv_sec = left_us / USPERSEC;
|
ovalue->it_value.tv_sec = left_us / USPERSEC;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* timer.h: Define class timer_tracker, base class for timer handling
|
/* timer.h: Define class timer_tracker, base class for posix timers
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -20,15 +20,15 @@ class timer_tracker
|
||||||
timespec it_interval;
|
timespec it_interval;
|
||||||
HANDLE hcancel;
|
HANDLE hcancel;
|
||||||
HANDLE syncthread;
|
HANDLE syncthread;
|
||||||
long long interval_us;
|
int64_t interval_us;
|
||||||
long long sleepto_us;
|
int64_t sleepto_us;
|
||||||
|
|
||||||
bool cancel ();
|
bool cancel ();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
timer_tracker (clockid_t, const sigevent *);
|
timer_tracker (clockid_t, const sigevent *);
|
||||||
~timer_tracker ();
|
~timer_tracker ();
|
||||||
inline bool is_timer_tracker () { return magic == TT_MAGIC; }
|
inline bool is_timer_tracker () const { return magic == TT_MAGIC; }
|
||||||
|
|
||||||
void gettime (itimerspec *);
|
void gettime (itimerspec *);
|
||||||
int settime (int, const itimerspec *, itimerspec *);
|
int settime (int, const itimerspec *, itimerspec *);
|
||||||
|
|
Loading…
Reference in New Issue