Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jun 2016 13:03:01 -0400 (EDT)
From:      Daniel Eischen <deischen@freebsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Ivan Klymenko <fidaj@ukr.net>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r302194 - head/lib/libthr/thread
Message-ID:  <Pine.GSO.4.64.1606251258040.2551@sea.ntplx.net>
In-Reply-To: <20160625161615.GD38613@kib.kiev.ua>
References:  <201606251130.u5PBUeGC001988@repo.freebsd.org> <20160625164403.70684b3b@nonamehost.local> <20160625135508.GV38613@kib.kiev.ua> <20160625170406.77c79b2e@nonamehost.local> <20160625140529.GW38613@kib.kiev.ua> <20160625171800.50a43746@nonamehost.local> <20160625142915.GX38613@kib.kiev.ua> <20160625175503.7c57d42b@nonamehost.local> <20160625152006.GA38613@kib.kiev.ua> <20160625190346.19a1ef0d@nonamehost.local> <20160625161615.GD38613@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 25 Jun 2016, Konstantin Belousov wrote:

> On Sat, Jun 25, 2016 at 07:03:46PM +0300, Ivan Klymenko wrote:
>> On Sat, 25 Jun 2016 18:20:06 +0300
>> Konstantin Belousov <kostikbel@gmail.com> wrote:
>>> diff --git a/lib/libthr/thread/thr_mutex.c
>>> b/lib/libthr/thread/thr_mutex.c index 2ad05ca..1ae75fb 100644
>>> --- a/lib/libthr/thread/thr_mutex.c
>>> +++ b/lib/libthr/thread/thr_mutex.c
>>> @@ -850,10 +871,10 @@ mutex_self_trylock(struct pthread_mutex *m)
>>>
>>>  	switch (PMUTEX_TYPE(m->m_flags)) {
>>>  	case PTHREAD_MUTEX_ERRORCHECK:
>>> -	case PTHREAD_MUTEX_ADAPTIVE_NP:
>>>  		ret = EDEADLK;
>>>  		break;
>>>
>>> +	case PTHREAD_MUTEX_ADAPTIVE_NP:
>>>  	case PTHREAD_MUTEX_NORMAL:
>>>  		ret = EBUSY;
>>>  		break;
>>
>> Strange, it's not helped http://pastebin.com/jbzP0JW2
>
> Are you sure that the new libthr was installed ?  Compile and run the
> following test, please, and show me the results.  On the patched libthr,
> the program must not output anything and exits with error code 0.

Sorry for not noticing and coming in late, but I think the
original change is wrong.  I don't see in the 2013 POSIX spec
or Solaris 11 man page (haven't checked Linux yet) where
pthread_mutex_trylock() returns EDEADLK under any
circumstance.

   http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_trylock.html
   http://docs.oracle.com/cd/E23824_01/html/821-1465/pthread-mutex-trylock-3c.html#scrolltoc

-- 
DE



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