mirror of https://github.com/aria2/aria2
2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use elapsed time between two mach_absolute_time() calls. Fixed compile error in Mac OS X. * src/clock_gettime_osx.cc * src/timespec.hpull/1/head
parent
91e7127396
commit
a71148b702
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
||||||
|
2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Use elapsed time between two mach_absolute_time() calls.
|
||||||
|
Fixed compile error in Mac OS X.
|
||||||
|
* src/clock_gettime_osx.cc
|
||||||
|
* src/timespec.h
|
||||||
|
|
||||||
|
2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Implemented clock_gettime() using mach_absolute_time in Mac OS X.
|
||||||
|
* configure.ac
|
||||||
|
* src/Makefile.am
|
||||||
|
* src/a2time.h
|
||||||
|
* src/clock_gettime_osx.cc
|
||||||
|
* src/clock_gettime_osx.h
|
||||||
|
|
||||||
2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Implemented clock_gettime() using timeGetTime in mingw.
|
Implemented clock_gettime() using timeGetTime in mingw.
|
||||||
|
|
|
@ -38,13 +38,21 @@
|
||||||
|
|
||||||
int clock_gettime(int dummyid, struct timespec* tp)
|
int clock_gettime(int dummyid, struct timespec* tp)
|
||||||
{
|
{
|
||||||
uint64_t mt = mach_absolute_time();
|
static uint64_t lasttime = mach_absolute_time();
|
||||||
|
static struct timespec monotime = {2678400, 0}; // 1month offset(24*3600*31)
|
||||||
|
uint64_t now = mach_absolute_time();
|
||||||
static mach_timebase_info_data_t baseinfo;
|
static mach_timebase_info_data_t baseinfo;
|
||||||
if(baseinfo.denom == 0) {
|
if(baseinfo.denom == 0) {
|
||||||
mach_timebase_info(&baseinfo);
|
mach_timebase_info(&baseinfo);
|
||||||
}
|
}
|
||||||
uint64_t t = mt*baseinfo.numer/baseinfo.denom;
|
uint64_t elapsed = (now-lasttime)*baseinfo.numer/baseinfo.denom;
|
||||||
tp->tv_sec = t/1000000000+2678400; // 1month offset(24*3600*31)
|
monotime.tv_sec += elapsed/1000000000;
|
||||||
tp->tv_nsec = t%1000000000;
|
monotime.tv_nsec += elapsed%1000000000;
|
||||||
return 1;
|
if(monotime.tv_nsec >= 1000000000) {
|
||||||
|
monotime.tv_sec += monotime.tv_nsec/1000000000;
|
||||||
|
monotime.tv_nsec %= 1000000000;
|
||||||
|
}
|
||||||
|
lasttime = now;
|
||||||
|
*tp = monotime;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,8 @@
|
||||||
#ifndef _D_TIMESPEC_H_
|
#ifndef _D_TIMESPEC_H_
|
||||||
#define _D_TIMESPEC_H_
|
#define _D_TIMESPEC_H_
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#ifndef HAVE_STRUCT_TIMESPEC
|
#ifndef HAVE_STRUCT_TIMESPEC
|
||||||
|
|
Loading…
Reference in New Issue