소스 검색

evtimer_gettime was broken on MacOs.

master
Richard Nyberg 16 년 전
부모
커밋
9f4d2b0662
1개의 변경된 파일7개의 추가작업 그리고 4개의 파일을 삭제
  1. +7
    -4
      evloop/timer.c

+ 7
- 4
evloop/timer.c 파일 보기

@@ -25,12 +25,15 @@ int
evtimer_gettime(struct timespec *ts) evtimer_gettime(struct timespec *ts)
{ {
uint64_t nsecs; uint64_t nsecs;
static double nsmul;
static mach_timebase_info_data_t nsratio = { 0, 0 }; static mach_timebase_info_data_t nsratio = { 0, 0 };
if (nsratio.denom == 0)
if (nsratio.denom == 0) {
mach_timebase_info(&nsratio); mach_timebase_info(&nsratio);
nsecs = mach_absolute_time() * nsratio.numer / nsratio.denom;
ts->tv_sec = nsecs / 1000000000;
ts->tv_nsec = nsecs - ts->tv_sec * 1000000000;
nsmul = (double)nsratio.numer / nsratio.denom;
}
nsecs = mach_absolute_time() * nsmul;
ts->tv_sec = nsecs / 1000000000ULL;
ts->tv_nsec = nsecs - ts->tv_sec * 1000000000ULL;
return 0; return 0;
} }




불러오는 중...
취소
저장