mirror of git://git.musl-libc.org/musl
support cputime clocks for processes/threads other than self
apparently these features have been in Linux for a while now, so it makes sense to support them. the bit twiddling seems utterly illogical and wasteful, especially the negation, but that's how the kernel folks chose to encode pids/tids into the clock id.
This commit is contained in:
parent
0996faa3d7
commit
ea200e38bd
|
@ -2,5 +2,6 @@
|
|||
|
||||
int pthread_getcpuclockid(pthread_t t, clockid_t *clockid)
|
||||
{
|
||||
return ENOSYS;
|
||||
*clockid = (-t->tid-1)*8U + 6;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
|
||||
int clock_getcpuclockid(pid_t pid, clockid_t *clk)
|
||||
{
|
||||
if (pid && pid != getpid()) return EPERM;
|
||||
*clk = CLOCK_PROCESS_CPUTIME_ID;
|
||||
struct timespec ts;
|
||||
clockid_t id = (-pid-1)*8U + 2;
|
||||
int ret = __syscall(SYS_clock_getres, id, &ts);
|
||||
if (ret) return -ret;
|
||||
*clk = id;
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue