svn commit: r277862 - head/lib/libc/gen
Jilles Tjoelker
jilles at FreeBSD.org
Wed Jan 28 22:42:57 UTC 2015
Author: jilles
Date: Wed Jan 28 22:42:56 2015
New Revision: 277862
URL: https://svnweb.freebsd.org/changeset/base/277862
Log:
sem_post(): Fix and document semaphore value overflow error.
The error code is per Austin Group issue #315.
I provided different wording for the manual page change.
Submitted by: pluknet
MFC after: 1 week
Modified:
head/lib/libc/gen/sem_new.c
head/lib/libc/gen/sem_post.3
Modified: head/lib/libc/gen/sem_new.c
==============================================================================
--- head/lib/libc/gen/sem_new.c Wed Jan 28 22:32:03 2015 (r277861)
+++ head/lib/libc/gen/sem_new.c Wed Jan 28 22:42:56 2015 (r277862)
@@ -439,8 +439,10 @@ _sem_post(sem_t *sem)
do {
count = sem->_kern._count;
- if (USEM_COUNT(count) + 1 > SEM_VALUE_MAX)
- return (EOVERFLOW);
+ if (USEM_COUNT(count) + 1 > SEM_VALUE_MAX) {
+ errno = EOVERFLOW;
+ return (-1);
+ }
} while (!atomic_cmpset_rel_int(&sem->_kern._count, count, count + 1));
if (count & USEM_HAS_WAITERS)
usem_wake(&sem->_kern);
Modified: head/lib/libc/gen/sem_post.3
==============================================================================
--- head/lib/libc/gen/sem_post.3 Wed Jan 28 22:32:03 2015 (r277861)
+++ head/lib/libc/gen/sem_post.3 Wed Jan 28 22:42:56 2015 (r277862)
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 15, 2000
+.Dd January 28, 2015
.Dt SEM_POST 3
.Os
.Sh NAME
@@ -65,6 +65,9 @@ The
.Fa sem
argument
points to an invalid semaphore.
+.It Bq Er EOVERFLOW
+The semaphore value would exceed
+.Dv SEM_VALUE_MAX .
.El
.Sh SEE ALSO
.Xr sem_getvalue 3 ,
More information about the svn-src-all
mailing list