Способ программного обеспечения времени процессора для потока, в C, это работает как на opensolaris, так и на Linux
-
25-09-2019 - |
Вопрос
У меня есть небольшой демон, который я пишу в C, и мне нужен способ получить текущее время процессора в потоке. Linux, по-видимому, поставляет несколько способов выполнить это, Clock_gettime (Clock_Thread_cputime_id, ...), pthread_getcpuclocklockid (), GetRUSAGE (Rusage_Thread, ...) Но ни один из них, кажется, не поддерживается под Opensolaris 2009.06.
Есть ли кроссплатформенный дружеский способ получить текущее время процессора для потока? Если нет, есть ли способ сделать это в opensolaris вообще? На данный момент я даже готов поставить в кучу уродливых директив компилятора, чтобы сделать эту работу.
Решение
Согласно с «Приоритет потока на платформе Solaris», Solaris 9 и выше по умолчанию до однозначного соответствия между потоками и LWP (Легкие процессы). Поэтому, согласно Манштам GetRusage., вы должны быть в состоянии позвонить getrusage(RUSAGE_LWP, ...)
.