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>