Shared semaphores are not supported
authorkn <kn@openbsd.org>
Tue, 6 Apr 2021 19:59:32 +0000 (19:59 +0000)
committerkn <kn@openbsd.org>
Tue, 6 Apr 2021 19:59:32 +0000 (19:59 +0000)
Shared semaphores were reverted with lib/librthread/rthread_sem.c r1.18
in 2013 but corresponding manual bits were not;  revert sem_init.3 r1.6
(modulo the unrelated "named semaphores" hunk).

Reported by Rubén Llorente, thanks.
Prodding OK jmc

lib/libpthread/man/sem_init.3

index 92bd6d2..3d23004 100644 (file)
@@ -1,4 +1,4 @@
-.\" $OpenBSD: sem_init.3,v 1.6 2013/11/20 03:26:56 tedu Exp $
+.\" $OpenBSD: sem_init.3,v 1.7 2021/04/06 19:59:32 kn Exp $
 .\"
 .\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
 .\" All rights reserved.
@@ -28,7 +28,7 @@
 .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/lib/libc_r/man/sem_init.3,v 1.11 2001/10/01 16:09:09 ru Exp $
-.Dd $Mdocdate: November 20 2013 $
+.Dd $Mdocdate: April 6 2021 $
 .Dt SEM_INIT 3
 .Os
 .Sh NAME
@@ -47,7 +47,8 @@ to have the value
 .Fa value .
 A non-zero value for
 .Fa pshared
-specifies a shared semaphore that can be used by multiple processes.
+specifies a shared semaphore that can be used by multiple processes, which this
+implementation is not capable of.
 .Pp
 Following a successful call to
 .Fn sem_init ,
@@ -77,6 +78,8 @@ will fail if:
 exceeds SEM_VALUE_MAX.
 .It Bq Er ENOSPC
 Memory allocation error.
+.It Bq Er EPERM
+Unable to initialize a shared semaphore.
 .El
 .Sh SEE ALSO
 .Xr sem_destroy 3 ,
@@ -88,3 +91,14 @@ Memory allocation error.
 .Fn sem_init
 conforms to
 .St -p1003.1-96 .
+.Pp
+This implementation does not support shared semaphores, and reports this fact
+by setting
+.Va errno
+to
+.Er EPERM .
+This is perhaps a stretch of the intention of POSIX, but is
+compliant, with the caveat that
+.Fn sem_init
+always reports a permissions error when an attempt to create a shared semaphore
+is made.