A simple app to get run times from a thread

Just a quick app to test and demonstrate how to get run times from a
specific thread on FreeBSD.
This commit is contained in:
Harald Eilertsen 2025-06-20 13:21:43 +02:00
commit 45e6aebfbf
10 changed files with 366 additions and 0 deletions

32
fast_cpu_time.cpp Normal file
View file

@ -0,0 +1,32 @@
/*
* SPDX-FileCopyrightText: 2025 Eilertsens Kodeknekkeri
* SPDX-FileCopyrightText: 2025 The FreeBSD Foundation
* SPDX-FileContributor: Harald Eilertsen <haraldei@anduin.net>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "fast_cpu_time.hpp"
#include "helpers.hpp"
#include <cassert>
namespace {
clockid_t get_thread_clock_id(pthread_t thread) {
clockid_t clock_id;
auto rc = pthread_getcpuclockid(thread, &clock_id);
assert(rc == 0);
return clock_id;
}
}
unsigned long fast_thread_cpu_time(pthread_t thread) {
auto clock_id = get_thread_clock_id(thread);
struct timespec time;
auto rc = clock_gettime(clock_id, &time);
assert(rc == 0);
return time.tv_sec * 1000000 + time.tv_nsec;
}