Commit bb7a2c63 authored by Hui Su's avatar Hui Su Committed by Jonathan Corbet

docs/cpu-load: format the example code.

format the example code.
Signed-off-by: default avatarHui Su <sh_def@163.com>
Link: https://lore.kernel.org/r/20201018170557.GA7670@rlkSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 4fb220da
...@@ -61,43 +61,46 @@ will lead to quite erratic information inside ``/proc/stat``:: ...@@ -61,43 +61,46 @@ will lead to quite erratic information inside ``/proc/stat``::
static volatile sig_atomic_t stop; static volatile sig_atomic_t stop;
static void sighandler (int signr) static void sighandler(int signr)
{ {
(void) signr; (void) signr;
stop = 1; stop = 1;
} }
static unsigned long hog (unsigned long niters) static unsigned long hog (unsigned long niters)
{ {
stop = 0; stop = 0;
while (!stop && --niters); while (!stop && --niters);
return niters; return niters;
} }
int main (void) int main (void)
{ {
int i; int i;
struct itimerval it = { .it_interval = { .tv_sec = 0, .tv_usec = 1 }, struct itimerval it = {
.it_value = { .tv_sec = 0, .tv_usec = 1 } }; .it_interval = { .tv_sec = 0, .tv_usec = 1 },
sigset_t set; .it_value = { .tv_sec = 0, .tv_usec = 1 } };
unsigned long v[HIST]; sigset_t set;
double tmp = 0.0; unsigned long v[HIST];
unsigned long n; double tmp = 0.0;
signal (SIGALRM, &sighandler); unsigned long n;
setitimer (ITIMER_REAL, &it, NULL); signal(SIGALRM, &sighandler);
setitimer(ITIMER_REAL, &it, NULL);
hog (ULONG_MAX);
for (i = 0; i < HIST; ++i) v[i] = ULONG_MAX - hog (ULONG_MAX); hog (ULONG_MAX);
for (i = 0; i < HIST; ++i) tmp += v[i]; for (i = 0; i < HIST; ++i) v[i] = ULONG_MAX - hog(ULONG_MAX);
tmp /= HIST; for (i = 0; i < HIST; ++i) tmp += v[i];
n = tmp - (tmp / 3.0); tmp /= HIST;
n = tmp - (tmp / 3.0);
sigemptyset (&set);
sigaddset (&set, SIGALRM); sigemptyset(&set);
sigaddset(&set, SIGALRM);
for (;;) {
hog (n); for (;;) {
sigwait (&set, &i); hog(n);
} sigwait(&set, &i);
return 0; }
return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment