Date: Tue, 3 Aug 2010 20:56:23 +0000 (UTC) From: Ulrich Spoerlein <uqs@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r210827 - head/games/grdc Message-ID: <201008032056.o73KuNVh058700@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: uqs Date: Tue Aug 3 20:56:23 2010 New Revision: 210827 URL: http://svn.freebsd.org/changeset/base/210827 Log: grdc(6): de-obfuscate the timekeeping of now/delay - 'now' only contains current time readings - delay is only used as parameter to nanosleep - prev_sec contains the time_t of the previous loop iteration Submitted by: bde MFC after: 2 weeks Modified: head/games/grdc/grdc.c Modified: head/games/grdc/grdc.c ============================================================================== --- head/games/grdc/grdc.c Tue Aug 3 19:25:58 2010 (r210826) +++ head/games/grdc/grdc.c Tue Aug 3 20:56:23 2010 (r210827) @@ -55,6 +55,7 @@ int main(int argc, char *argv[]) { struct timespec delay; + time_t prev_sec; long t, a; int i, j, s, k; int n; @@ -138,6 +139,7 @@ main(int argc, char *argv[]) attrset(COLOR_PAIR(2)); } clock_gettime(CLOCK_REALTIME_FAST, &now); + prev_sec = now.tv_sec; do { mask = 0; tm = localtime(&now.tv_sec); @@ -194,20 +196,20 @@ main(int argc, char *argv[]) } movto(6, 0); refresh(); - clock_gettime(CLOCK_REALTIME_FAST, &delay); - if (delay.tv_sec == now.tv_sec) { + clock_gettime(CLOCK_REALTIME_FAST, &now); + if (now.tv_sec == prev_sec) { if (delay.tv_nsec > 0) { delay.tv_sec = 0; - delay.tv_nsec = 1000000000 - delay.tv_nsec; + delay.tv_nsec = 1000000000 - now.tv_nsec; } else { delay.tv_sec = 1; delay.tv_nsec = 0; } nanosleep(&delay, NULL); - clock_gettime(CLOCK_REALTIME_FAST, &delay); + clock_gettime(CLOCK_REALTIME_FAST, &now); } - n -= delay.tv_sec - now.tv_sec; - now.tv_sec = delay.tv_sec; + n -= now.tv_sec - prev_sec; + prev_sec = now.tv_sec; if (sigtermed) { standend(); clear();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008032056.o73KuNVh058700>