Метод программного получения процессорного времени для потока в C, который работает как в OpenSolaris, так и в Linux - PullRequest
1 голос
/ 09 апреля 2010

У меня есть небольшой демон, который я пишу на C, и мне нужен способ получить текущее время процессора в потоке. Linux, по-видимому, предлагает несколько способов сделать это: clock_gettime (CLOCK_THREAD_CPUTIME_ID, ...), pthread_getcpuclockid (), getrusage (RUSAGE_THREAD, ...), но ни один из них не поддерживается в OpenSolaris 2009.06.

Существует ли кроссплатформенный дружественный способ получить текущее время процессора для потока? Если нет, то есть ли способ сделать это в OpenSolaris вообще? На этом этапе я даже готов добавить кучу уродливых директив компилятора, чтобы эта работа работала.

1 Ответ

0 голосов
/ 10 апреля 2010

В соответствии с «Приоритет потоков на платформе Solaris» , Solaris 9 и выше по умолчанию соответствует взаимно-однозначному соответствию между потоками и LWP ( Облегченные процессы ). Поэтому, согласно странице руководства getrusage , вы должны иметь возможность звонить getrusage(RUSAGE_LWP, ...).

...