On 2026/07/02 13:31, Christian Schulte wrote: > Hi maintainers, > > the manual of function thrd_sleep as documented in thrd_create.3 > in package devel/libstdthreads contains incorrect information. The same > page is served at man.freebsd.org and contains the same incorrect > return value section there as well. I think this should be fixed. > Following that manual one is lead to checking for thrd_success which > happens to be zero on some platforms, but not BSD. Reading that manual > should not lead to broken code only working by accident on other platforms > but BSD. +cc matthieu@ Should we also mention the need to check errno? It's noted in https://pubs.opengroup.org/onlinepubs/9799919799/functions/thrd_sleep.html Updated diff below > Index: devel/libstdthreads/patches/patch-thrd_create_3 > =================================================================== > RCS file: devel/libstdthreads/patches/patch-thrd_create_3 > diff -N devel/libstdthreads/patches/patch-thrd_create_3 > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ devel/libstdthreads/patches/patch-thrd_create_3 2 Jul 2026 11:23:07 -0000 > @@ -0,0 +1,24 @@ > +Index: thrd_create.3 > +--- thrd_create.3.orig > ++++ thrd_create.3 > +@@ -191,7 +191,6 @@ If successful, the > + .Fn thrd_detach , > + .Fn thrd_equal , > + .Fn thrd_join , > +-.Fn thrd_sleep , > + .Fn tss_create > + and > + .Fn tss_set > +@@ -202,6 +201,12 @@ Otherwise an error code will be returned to indicate t > + The > + .Fn thrd_current > + function returns the thread ID of the calling thread. > ++.Pp > ++The > ++.Fn thrd_sleep > ++function returns zero if the requested time has elapsed, > ++-1 if it has been interrupted by a signal, > ++or a negative value (which can also be -1) if it fails. > + .Pp > + The > + .Fn tss_get > Index: Makefile =================================================================== RCS file: /cvs/ports/devel/libstdthreads/Makefile,v diff -u -p -w -r1.6 Makefile --- Makefile 17 Nov 2025 19:25:59 -0000 1.6 +++ Makefile 2 Jul 2026 12:05:07 -0000 @@ -2,11 +2,11 @@ COMMENT = C11 standard threads library DISTNAME = libstdthreads-${V} V = 0.3.2 -REVISION = 2 +REVISION = 3 CATEGORIES = devel -SITES = https://code.tetaneutral.net/mherrb/libstdthreads//archive/ +SITES = https://code.tetaneutral.net/mherrb/libstdthreads/archive/ DISTFILES = ${DISTNAME}-1{${DISTNAME}}.tar.gz SHARED_LIBS += stdthreads 0.0 # 0.0 Index: patches/patch-thrd_create_3 =================================================================== RCS file: patches/patch-thrd_create_3 diff -N patches/patch-thrd_create_3 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-thrd_create_3 2 Jul 2026 12:05:07 -0000 @@ -0,0 +1,28 @@ +Index: thrd_create.3 +--- thrd_create.3.orig ++++ thrd_create.3 +@@ -191,7 +191,6 @@ If successful, the + .Fn thrd_detach , + .Fn thrd_equal , + .Fn thrd_join , +-.Fn thrd_sleep , + .Fn tss_create + and + .Fn tss_set +@@ -202,6 +201,16 @@ Otherwise an error code will be returned to indicate t + The + .Fn thrd_current + function returns the thread ID of the calling thread. ++.Pp ++The ++.Fn thrd_sleep ++function returns zero if the requested time has elapsed, ++-1 if it has been interrupted by a signal, ++or a negative value (which can also be -1) if it fails for any other reason. ++If a negative value is returned, errno should be checked to distinguish ++EINTR (in which case, ++.Fa remaining ++contains the unslept time) from other values. + .Pp + The + .Fn tss_get
No comments:
Post a Comment