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 <guy...@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:
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to