|
Message-ID: <CAPmKWpH4KV0FBVpfzUgmDp7ppaX6-GQoLJ2CCg_CgUQkMxSMYg@mail.gmail.com>
Date: Tue, 14 Jun 2022 13:15:36 +0300
From: Eugene Yudin <e.yudin@...systems.com>
To: musl@...ts.openwall.com
Subject: [PATCH] make clock_getcpuclockid return ESRCH rather than EINVAL
Hi,
According to man clock_getcpuclockid() should return ESRCH if there is no
process with the ID pid.
diff --git a/src/time/clock_getcpuclockid.c b/src/time/clock_getcpuclockid.c
--- a/src/time/clock_getcpuclockid.c
+++ b/src/time/clock_getcpuclockid.c
@@ -8,6 +8,7 @@ int clock_getcpuclockid(pid_t pid, clockid_t *clk)
struct timespec ts;
clockid_t id = (-pid-1)*8U + 2;
int ret = __syscall(SYS_clock_getres, id, &ts);
+ if (ret == -EINVAL) ret = -ESRCH;
if (ret) return -ret;
*clk = id;
return 0
The same behaviour is used in glibc:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/clock_getcpuclockid.c;h=5534127ed703a3931f22af48da02e2b8f2dc39a5;hb=HEAD#l49
--
Best regards,
Eugene
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.