X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Ftime%2Fclock.c;h=6724012b92ef69b8dfa19e087b940aaf6a141e10;hb=8ef9d46f4d0ff4f0073da6bee7ed0cb5f9035ead;hp=2feddb366d09bb1806e4e42c45b07633967225d9;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/time/clock.c b/src/time/clock.c index 2feddb36..6724012b 100644 --- a/src/time/clock.c +++ b/src/time/clock.c @@ -1,9 +1,16 @@ #include -#include +#include -/* this function assumes 100 hz linux and corrects for it */ clock_t clock() { - struct tms tms; - return (unsigned long)times(&tms)*10000; + struct timespec ts; + + if (__clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts)) + return -1; + + if (ts.tv_sec > LONG_MAX/1000000 + || ts.tv_nsec/1000 > LONG_MAX-1000000*ts.tv_sec) + return -1; + + return ts.tv_sec*1000000 + ts.tv_nsec/1000; }