Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jun 2016 11:30:40 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r302194 - head/lib/libthr/thread
Message-ID:  <201606251130.u5PBUeGC001988@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606251130.u5PBUeGC001988>