瀏覽代碼

fix delay in a cleaner way

raiz 9 年之前
父節點
當前提交
862d158b7c
共有 1 個文件被更改,包括 9 次插入4 次删除
  1. 9 4
      slstatus.c

+ 9 - 4
slstatus.c

@@ -75,7 +75,7 @@ static void usage(void);
 
 char *argv0;
 char concat[];
-static unsigned short int delay;
+static unsigned short int delay = 0;
 static unsigned short int done;
 static unsigned short int dflag, oflag;
 static Display *dpy;
@@ -164,7 +164,7 @@ cpu_perc(void)
 	fscanf(fp, "%*s %Lf %Lf %Lf %Lf", &a[0], &a[1], &a[2], &a[3]);
 	fclose(fp);
 
-	delay = (UPDATE_INTERVAL - (UPDATE_INTERVAL - 1));
+	delay++;
 	sleep(delay);
 
 	fp = fopen("/proc/stat", "r");
@@ -829,8 +829,13 @@ main(int argc, char *argv[])
 		 * subtract delay time spend in function
 		 * calls from the actual global delay time
 		 */
-		sleep(UPDATE_INTERVAL - delay);
-		delay = 0;
+		if ((UPDATE_INTERVAL - delay) <= 0) {
+			delay = 0;
+			continue;
+		} else {
+			sleep(UPDATE_INTERVAL - delay);
+			delay = 0;
+		}
 	}
 
 	if (!oflag) {