svn commit: r302194 - head/lib/libthr/thread
Konstantin Belousov
kib at FreeBSD.org
Sat Jun 25 11:30:42 UTC 2016
Author: kib
Date: Sat Jun 25 11:30:40 2016
New Revision: 302194
URL: https://svnweb.freebsd.org/changeset/base/302194
Log:
For pthread_mutex_trylock() call on owned error-check or non-portable
adaptive mutex, return EDEADLK as required by POSIX. The
pthread_mutex_lock() is already compliant.
Tested by: Guy Yur <guyyur at gmail.com>
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Approved by: re (gjb)
Modified:
head/lib/libthr/thread/thr_mutex.c
Modified: head/lib/libthr/thread/thr_mutex.c
==============================================================================
--- head/lib/libthr/thread/thr_mutex.c Sat Jun 25 10:08:04 2016 (r302193)
+++ head/lib/libthr/thread/thr_mutex.c Sat Jun 25 11:30:40 2016 (r302194)
@@ -850,9 +850,12 @@ mutex_self_trylock(struct pthread_mutex
switch (PMUTEX_TYPE(m->m_flags)) {
case PTHREAD_MUTEX_ERRORCHECK:
- case PTHREAD_MUTEX_NORMAL:
case PTHREAD_MUTEX_ADAPTIVE_NP:
- ret = EBUSY;
+ ret = EDEADLK;
+ break;
+
+ case PTHREAD_MUTEX_NORMAL:
+ ret = EBUSY;
break;
case PTHREAD_MUTEX_RECURSIVE:
More information about the svn-src-head
mailing list