svn commit: r300958 - head/lib/libc/sys
Jilles Tjoelker
jilles at FreeBSD.org
Sun May 29 15:02:57 UTC 2016
Author: jilles
Date: Sun May 29 15:02:55 2016
New Revision: 300958
URL: https://svnweb.freebsd.org/changeset/base/300958
Log:
_umtx_op(2): Note deprecation of UMTX_OP_MUTEX_WAKE.
Modified:
head/lib/libc/sys/_umtx_op.2
Modified: head/lib/libc/sys/_umtx_op.2
==============================================================================
--- head/lib/libc/sys/_umtx_op.2 Sun May 29 14:16:23 2016 (r300957)
+++ head/lib/libc/sys/_umtx_op.2 Sun May 29 15:02:55 2016 (r300958)
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 17, 2016
+.Dd May 29, 2016
.Dt _UMTX_OP 2
.Os
.Sh NAME
@@ -1041,6 +1041,20 @@ with the byte addressed by the
if any.
Only normal mutexes are supported by the request.
The sleep queue is always one for a normal mutex type.
+.Pp
+This request is deprecated in favor of
+.Dv UMTX_OP_MUTEX_WAKE2
+since mutexes using it cannot synchronize their own destruction.
+That is, the
+.Dv m_owner
+word has already been set to
+.Dv UMUTEX_UNOWNED
+when this request is made,
+so that another thread can lock, unlock and destroy the mutex
+(if no other thread uses the mutex afterwards).
+Clearing the
+.Dv UMUTEX_CONTESTED
+bit may then modify freed memory.
.It Dv UMTX_OP_MUTEX_WAKE2
Check if a umutex is unlocked and wake up a waiter.
The arguments for the request are:
More information about the svn-src-head
mailing list