From 3ee2fdea3adc70148e632b333067fd445e8be87e Mon Sep 17 00:00:00 2001 From: Bjoern Brandenburg Date: Tue, 21 Feb 2012 10:09:34 +0100 Subject: 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. --- native/src/cpu_time.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 native/src/cpu_time.cpp (limited to 'native/src/cpu_time.cpp') 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 @@ + +#include +#include + +#include "cpu_time.h" + +#ifdef RUSAGE_THREAD +// This is a Linuxism... +#define ACCOUNTING_SCOPE RUSAGE_THREAD +#else +// This is POSIX. +#define ACCOUNTING_SCOPE RUSAGE_SELF +#endif + +double get_cpu_usage(void) +{ + struct rusage u; + if (getrusage(ACCOUNTING_SCOPE, &u) == 0) + { + return u.ru_utime.tv_sec + u.ru_utime.tv_usec / 1E6; + } + else + return 0.0; +} + -- cgit v1.2.2