aboutsummaryrefslogtreecommitdiffstats
path: root/native/src/cpu_time.cpp
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-02-21 04:09:34 -0500
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-04-11 07:53:40 -0400
commit3ee2fdea3adc70148e632b333067fd445e8be87e (patch)
tree1bb46a7d46f11c0fe8bdae13944c7fee0a6be21c /native/src/cpu_time.cpp
parentb12d172d6599d7578bc811a36d939d89d415f636 (diff)
Implement timeout in BaruahGEDF
Give up after running for 5 seconds. This is almost never triggered, but once in a while this should help to catch a pseudo-polynomial excursion.
Diffstat (limited to 'native/src/cpu_time.cpp')
-rw-r--r--native/src/cpu_time.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/native/src/cpu_time.cpp b/native/src/cpu_time.cpp
new file mode 100644
index 0000000..a7dfa6d
--- /dev/null
+++ b/native/src/cpu_time.cpp
@@ -0,0 +1,25 @@
1
2#include <sys/time.h>
3#include <sys/resource.h>
4
5#include "cpu_time.h"
6
7#ifdef RUSAGE_THREAD
8// This is a Linuxism...
9#define ACCOUNTING_SCOPE RUSAGE_THREAD
10#else
11// This is POSIX.
12#define ACCOUNTING_SCOPE RUSAGE_SELF
13#endif
14
15double get_cpu_usage(void)
16{
17 struct rusage u;
18 if (getrusage(ACCOUNTING_SCOPE, &u) == 0)
19 {
20 return u.ru_utime.tv_sec + u.ru_utime.tv_usec / 1E6;
21 }
22 else
23 return 0.0;
24}
25