projects
/
assignments.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
98cc79a
)
fix blocking call in signal handler, switch to CPU nanosecond time
author
ian
<ian@kremlin.cc>
Thu, 30 Oct 2014 20:34:36 +0000
(16:34 -0400)
committer
ian
<ian@kremlin.cc>
Thu, 30 Oct 2014 20:34:36 +0000
(16:34 -0400)
assgn7/timer.c
patch
|
blob
|
blame
|
history
diff --git
a/assgn7/timer.c
b/assgn7/timer.c
index 6d35ff54fe3c105afc63760dec5cab038ba8bc22..c8fef9879dc09573bad08a2466804106d0ce1d4d 100644
(file)
--- a/
assgn7/timer.c
+++ b/
assgn7/timer.c
@@
-10,31
+10,29
@@
int done;
void handle_start() {
void handle_start() {
- if(clock_gettime(CLOCK_
MONOTONIC
, start_time) == -1) {
+ if(clock_gettime(CLOCK_
PROCESS_CPUTIME_ID
, start_time) == -1) {
printf("failed to get start time.\n");
exit(1);
}
printf("failed to get start time.\n");
exit(1);
}
-
- pause();
}
void handle_stop() {
long int start_sec, stop_sec, delta;
}
void handle_stop() {
long int start_sec, stop_sec, delta;
- if(clock_gettime(CLOCK_
MONOTONIC
, stop_time) == -1) {
+ if(clock_gettime(CLOCK_
PROCESS_CPUTIME_ID
, stop_time) == -1) {
printf("failed to get stop time.\n");
exit(1);
}
printf("failed to get stop time.\n");
exit(1);
}
- start_sec = ((long int) start_time->tv_sec);
- stop_sec = ((long int) stop_time->tv_sec);
+ start_sec = ((long int) start_time->tv_
n
sec);
+ stop_sec = ((long int) stop_time->tv_
n
sec);
delta = stop_sec - start_sec;
delta = stop_sec - start_sec;
- printf("%ld seconds elapsed between signals.\n", delta);
+ printf("%ld
nano
seconds elapsed between signals.\n", delta);
done = 1;
}
done = 1;
}
@@
-58,7
+56,7
@@
int main(int argc, char *argv[]) {
pause();
if(!done)
pause();
if(!done)
- goto terminate_check;
+ goto terminate_check;
/* sorry */
free(start_time);
free(stop_time);
free(start_time);
free(stop_time);