POSIX does NOT specify aio_suspend() to use 'restrict'.
However, glibc uses 'restrict'.
Users might be surprised by this! Let's use it here too!
......
.../glibc$ grep_glibc_prototype aio_suspend
rt/aio.h:167:
extern int aio_suspend (const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout)
__nonnull ((1));
.../glibc$
Cc: libc-alpha@sourceware.org
Cc: Ulrich Drepper <redacted>
Signed-off-by: Alejandro Colomar <redacted>
---
Hello Michael,
I sent this patch separately because it's a bit different,
and would like someone from glibc to check it.
I CCd Ulrich, who added 'restrict' to the function in glibc.
Thanks,
Alex
---
man3/aio_suspend.3 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
From: Michael Kerrisk (man-pages) <hidden> Date: 2021-02-19 12:26:15
Hello Alex,
On 2/18/21 11:33 PM, Alejandro Colomar wrote:
POSIX does NOT specify aio_suspend() to use 'restrict'.
However, glibc uses 'restrict'.
Users might be surprised by this! Let's use it here too!
Thanks for spotting this. Perhaps if we apply this,
the patch should include something in CONFORMING TO to
note that POSIX doesn't specify 'restrict'. What do
you think?
Cheers,
Michael
quoted hunk
......
.../glibc$ grep_glibc_prototype aio_suspend
rt/aio.h:167:
extern int aio_suspend (const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout)
__nonnull ((1));
.../glibc$
Cc: libc-alpha@sourceware.org
Cc: Ulrich Drepper <redacted>
Signed-off-by: Alejandro Colomar <redacted>
---
Hello Michael,
I sent this patch separately because it's a bit different,
and would like someone from glibc to check it.
I CCd Ulrich, who added 'restrict' to the function in glibc.
Thanks,
Alex
---
man3/aio_suspend.3 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
On 2/19/21 1:25 PM, Michael Kerrisk (man-pages) wrote:
Hello Alex,
On 2/18/21 11:33 PM, Alejandro Colomar wrote:
quoted
POSIX does NOT specify aio_suspend() to use 'restrict'.
However, glibc uses 'restrict'.
Users might be surprised by this! Let's use it here too!
Thanks for spotting this. Perhaps if we apply this,
the patch should include something in CONFORMING TO to
note that POSIX doesn't specify 'restrict'. What do
you think?
Hi Michael,
I was about to ask exactly that in the email, but I forgot :)
Yes.
Cheers,
Alex
Cheers,
Michael
quoted
......
.../glibc$ grep_glibc_prototype aio_suspend
rt/aio.h:167:
extern int aio_suspend (const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout)
__nonnull ((1));
.../glibc$
Cc: libc-alpha@sourceware.org
Cc: Ulrich Drepper <redacted>
Signed-off-by: Alejandro Colomar <redacted>
---
Hello Michael,
I sent this patch separately because it's a bit different,
and would like someone from glibc to check it.
I CCd Ulrich, who added 'restrict' to the function in glibc.
Thanks,
Alex
---
man3/aio_suspend.3 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
POSIX does NOT specify aio_suspend() to use 'restrict'.
However, glibc uses 'restrict'.
Users might be surprised by this! Let's use it here too!
......
.../glibc$ grep_glibc_prototype aio_suspend
rt/aio.h:167:
extern int aio_suspend (const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout)
__nonnull ((1));
.../glibc$
Cc: libc-alpha@sourceware.org
Cc: Ulrich Drepper <redacted>
Signed-off-by: Alejandro Colomar <redacted>
---
v2:
- wsfix + srcfix: Avoid breaking the line in the prototype
- Note the difference between POSIX and glibc in CONFORMING TO.
---
man3/aio_suspend.3 | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
@@ -30,8 +30,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout .PP .B"#include <aio.h>" .PP-.BI"int aio_suspend(const struct aiocb * const "aiocb_list[],-.BI" int "nitems", const struct timespec *"timeout);+.BI"int aio_suspend(const struct aiocb *const "aiocb_list"[], int "nitems,+.BI" const struct timespec *restrict "timeout); .PP Link with \fI\-lrt\fP. .fi
@@ -122,6 +122,10 @@ T} Thread safety MT-Safe .sp1 .SHCONFORMINGTO POSIX.1-2001, POSIX.1-2008.+.PP+POSIX doesn't specify the parameters to be+.IRrestrict;+that is specific to glibc. .SHNOTES One can achieve polling by using a non-NULL .Itimeout
@@ -30,8 +30,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout .PP .B"#include <aio.h>" .PP-.BI"int aio_suspend(const struct aiocb * const "aiocb_list[],-.BI" int "nitems", const struct timespec *"timeout);+.BI"int aio_suspend(const struct aiocb *const "aiocb_list"[], int "nitems,+.BI" const struct timespec *restrict "timeout); .PP Link with \fI\-lrt\fP. .fi
@@ -122,6 +122,10 @@ T} Thread safety MT-Safe .sp1 .SHCONFORMINGTO POSIX.1-2001, POSIX.1-2008.+.PP+POSIX doesn't specify the parameters to be+.IRrestrict;+that is specific to glibc. .SHNOTES One can achieve polling by using a non-NULL .Itimeout