On Sat, 25 Jun 2016 19:16:15 +0300 Konstantin Belousov <kostik...@gmail.com> 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 <kostik...@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. > > /* $Id: pthread_errrecurse.c,v 1.1 2016/06/25 16:12:41 kostik Exp > kostik $ */ > > #include <err.h> > #include <errno.h> > #include <pthread.h> > > int > main(void) > { > pthread_mutex_t m; > pthread_mutexattr_t ma; > int error; > > error = pthread_mutexattr_init(&ma); > if (error != 0) > err(1, "mutexattr_init"); > error = pthread_mutexattr_settype(&ma, > PTHREAD_MUTEX_ADAPTIVE_NP); if (error != 0) > err(1, "mutexattr_settype"); > error = pthread_mutex_init(&m, &ma); > if (error != 0) > err(1, "mutex_init"); > error = pthread_mutex_trylock(&m); > if (error != 0) > err(1, "mutex_trylock 1"); > error = pthread_mutex_trylock(&m); > if (error != EBUSY) > err(1, "mutex_trylock 2"); > else if (error == 0) > errx(1, "mutex_trylock 2 succeeded"); > return (0); > } > ./thr_mutex_test thr_mutex_test: mutex_trylock 2: No error: 0 _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"