| 1 | #include <sys/resource.h> |
|---|---|
| 2 | #include "Stopwatch.h" |
| 3 | |
| 4 | StopwatchRUsage::Timestamp StopwatchRUsage::Timestamp::current() |
| 5 | { |
| 6 | StopwatchRUsage::Timestamp res; |
| 7 | |
| 8 | ::rusage rusage {}; |
| 9 | #if !defined(__APPLE__) |
| 10 | ::getrusage(RUSAGE_THREAD, &rusage); |
| 11 | #endif |
| 12 | res.user_ns = rusage.ru_utime.tv_sec * 1000000000UL + rusage.ru_utime.tv_usec * 1000UL; |
| 13 | res.sys_ns = rusage.ru_stime.tv_sec * 1000000000UL + rusage.ru_stime.tv_usec * 1000UL; |
| 14 | return res; |
| 15 | } |
| 16 |