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@gmail.com>
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Approved by:	re (gjb)
This commit is contained in:
Konstantin Belousov 2016-06-25 11:30:40 +00:00
parent 688fc8c0d6
commit a068480247
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=302194

View File

@ -850,9 +850,12 @@ mutex_self_trylock(struct pthread_mutex *m)
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: