Browse Source

Fixed wrong nanosecond factor 10E6.

Commit 5edeec1 introduced a wrong factor for nanosecond computation, the correct
value is 1E6. Time and timeout values are 10 times less than they should be and
this cause high CPU usage.

Reported by pyroh on IRC. Thanks!

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
master
Ivan Delalande 10 years ago
committed by Roberto E. Vargas Caballero
parent
commit
19d095717f
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      st.c

+ 3
- 3
st.c View File

@ -76,7 +76,7 @@ char *argv0;
#define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x) #define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x)
#define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || (a).bg != (b).bg) #define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || (a).bg != (b).bg)
#define IS_SET(flag) ((term.mode & (flag)) != 0) #define IS_SET(flag) ((term.mode & (flag)) != 0)
#define TIMEDIFF(t1, t2) ((t1.tv_sec-t2.tv_sec)*1000 + (t1.tv_nsec-t2.tv_nsec)/10E6)
#define TIMEDIFF(t1, t2) ((t1.tv_sec-t2.tv_sec)*1000 + (t1.tv_nsec-t2.tv_nsec)/1E6)
#define CEIL(x) (((x) != (int) (x)) ? (x) + 1 : (x)) #define CEIL(x) (((x) != (int) (x)) ? (x) + 1 : (x))
#define MODBIT(x, set, bit) ((set) ? ((x) |= (bit)) : ((x) &= ~(bit))) #define MODBIT(x, set, bit) ((set) ? ((x) |= (bit)) : ((x) &= ~(bit)))
@ -3753,7 +3753,7 @@ run(void) {
clock_gettime(CLOCK_MONOTONIC, &now); clock_gettime(CLOCK_MONOTONIC, &now);
drawtimeout.tv_sec = 0; drawtimeout.tv_sec = 0;
drawtimeout.tv_nsec = (1000/xfps) * 10E6;
drawtimeout.tv_nsec = (1000/xfps) * 1E6;
tv = &drawtimeout; tv = &drawtimeout;
dodraw = 0; dodraw = 0;
@ -3790,7 +3790,7 @@ run(void) {
> blinktimeout) { > blinktimeout) {
drawtimeout.tv_nsec = 1000; drawtimeout.tv_nsec = 1000;
} else { } else {
drawtimeout.tv_nsec = (10E6 * \
drawtimeout.tv_nsec = (1E6 * \
(blinktimeout - \ (blinktimeout - \
TIMEDIFF(now, TIMEDIFF(now,
lastblink))); lastblink)));


Loading…
Cancel
Save