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>
