/* * SPDX-FileCopyrightText: 2025 Eilertsens Kodeknekkeri * SPDX-FileCopyrightText: 2025 The FreeBSD Foundation * SPDX-FileContributor: Harald Eilertsen * * SPDX-License-Identifier: BSD-2-Clause */ #include "fast_cpu_time.hpp" #include "helpers.hpp" #include 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; }