All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
@ 2021-02-18 22:33 Alejandro Colomar
  2021-02-19 12:25 ` Michael Kerrisk (man-pages)
  0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Colomar @ 2021-02-18 22:33 UTC (permalink / raw)
  To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha, Ulrich Drepper

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 <drepper@redhat.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
---

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(-)

diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
index 76a05f48e..dcae51e1c 100644
--- a/man3/aio_suspend.3
+++ b/man3/aio_suspend.3
@@ -31,7 +31,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
 .B "#include <aio.h>"
 .PP
 .BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
-.BI "                int " nitems ", const struct timespec *" timeout );
+.BI "                int " nitems \
+", const struct timespec *restrict " timeout );
 .PP
 Link with \fI\-lrt\fP.
 .fi
-- 
2.30.1.721.g45526154a5


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
  2021-02-18 22:33 [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes Alejandro Colomar
@ 2021-02-19 12:25 ` Michael Kerrisk (man-pages)
  2021-02-19 12:30   ` Alejandro Colomar (man-pages)
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Kerrisk (man-pages) @ 2021-02-19 12:25 UTC (permalink / raw)
  To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha, Ulrich Drepper

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

> ......
> 
> .../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 <drepper@redhat.com>
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> ---
> 
> 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(-)
> 
> diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
> index 76a05f48e..dcae51e1c 100644
> --- a/man3/aio_suspend.3
> +++ b/man3/aio_suspend.3
> @@ -31,7 +31,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
>  .B "#include <aio.h>"
>  .PP
>  .BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
> -.BI "                int " nitems ", const struct timespec *" timeout );
> +.BI "                int " nitems \
> +", const struct timespec *restrict " timeout );
>  .PP
>  Link with \fI\-lrt\fP.
>  .fi
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
  2021-02-19 12:25 ` Michael Kerrisk (man-pages)
@ 2021-02-19 12:30   ` Alejandro Colomar (man-pages)
  2021-02-19 13:03     ` [PATCH v2] " Alejandro Colomar
  0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Colomar (man-pages) @ 2021-02-19 12:30 UTC (permalink / raw)
  To: Michael Kerrisk (man-pages); +Cc: linux-man, libc-alpha, Ulrich Drepper



On 2/19/21 1:25 PM, Michael Kerrisk (man-pages) wrote:
> 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?

Hi Michael,

I was about to ask exactly that in the email, but I forgot :)
Yes.

Cheers,

Alex

> 
> Cheers,
> 
> Michael
> 
>> ......
>>
>> .../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 <drepper@redhat.com>
>> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
>> ---
>>
>> 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(-)
>>
>> diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
>> index 76a05f48e..dcae51e1c 100644
>> --- a/man3/aio_suspend.3
>> +++ b/man3/aio_suspend.3
>> @@ -31,7 +31,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
>>   .B "#include <aio.h>"
>>   .PP
>>   .BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
>> -.BI "                int " nitems ", const struct timespec *" timeout );
>> +.BI "                int " nitems \
>> +", const struct timespec *restrict " timeout );
>>   .PP
>>   Link with \fI\-lrt\fP.
>>   .fi
>>
> 
> 

-- 
Alejandro Colomar
Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
  2021-02-19 12:30   ` Alejandro Colomar (man-pages)
@ 2021-02-19 13:03     ` Alejandro Colomar
  2021-02-20 14:36       ` Michael Kerrisk (man-pages)
  0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Colomar @ 2021-02-19 13:03 UTC (permalink / raw)
  To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha, Ulrich Drepper

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 <drepper@redhat.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
---

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(-)

diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
index 76a05f48e..e0355a449 100644
--- a/man3/aio_suspend.3
+++ b/man3/aio_suspend.3
@@ -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
 .sp 1
 .SH CONFORMING TO
 POSIX.1-2001, POSIX.1-2008.
+.PP
+POSIX doesn't specify the parameters to be
+.IR restrict ;
+that is specific to glibc.
 .SH NOTES
 One can achieve polling by using a non-NULL
 .I timeout
-- 
2.30.1.721.g45526154a5


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
  2021-02-19 13:03     ` [PATCH v2] " Alejandro Colomar
@ 2021-02-20 14:36       ` Michael Kerrisk (man-pages)
  0 siblings, 0 replies; 5+ messages in thread
From: Michael Kerrisk (man-pages) @ 2021-02-20 14:36 UTC (permalink / raw)
  To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha, Ulrich Drepper

On 2/19/21 2:03 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!

Hi Alex. 

Patch applied. Thanks!

Cheers,

Michael

> ......
> 
> .../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 <drepper@redhat.com>
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> ---
> 
> 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(-)
> 
> diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
> index 76a05f48e..e0355a449 100644
> --- a/man3/aio_suspend.3
> +++ b/man3/aio_suspend.3
> @@ -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
>  .sp 1
>  .SH CONFORMING TO
>  POSIX.1-2001, POSIX.1-2008.
> +.PP
> +POSIX doesn't specify the parameters to be
> +.IR restrict ;
> +that is specific to glibc.
>  .SH NOTES
>  One can achieve polling by using a non-NULL
>  .I timeout
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-02-20 14:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-18 22:33 [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes Alejandro Colomar
2021-02-19 12:25 ` Michael Kerrisk (man-pages)
2021-02-19 12:30   ` Alejandro Colomar (man-pages)
2021-02-19 13:03     ` [PATCH v2] " Alejandro Colomar
2021-02-20 14:36       ` Michael Kerrisk (man-pages)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.