svn commit: r297140 - head/lib/libthr/thread
Konstantin Belousov
kib at FreeBSD.org
Mon Mar 21 06:48:12 UTC 2016
Author: kib
Date: Mon Mar 21 06:48:11 2016
New Revision: 297140
URL: https://svnweb.freebsd.org/changeset/base/297140
Log:
Provide more information on failing checks in mutex_assert_is_owned()
and mutex_assert_not_owned(). snprintf() use in this context should
be safe.
Sponsored by: The FreeBSD Foundation
Modified:
head/lib/libthr/thread/thr_mutex.c
Modified: head/lib/libthr/thread/thr_mutex.c
==============================================================================
--- head/lib/libthr/thread/thr_mutex.c Mon Mar 21 06:46:16 2016 (r297139)
+++ head/lib/libthr/thread/thr_mutex.c Mon Mar 21 06:48:11 2016 (r297140)
@@ -124,8 +124,14 @@ mutex_assert_is_owned(struct pthread_mut
{
#if defined(_PTHREADS_INVARIANTS)
- if (__predict_false(m->m_qe.tqe_prev == NULL))
- PANIC("mutex is not on list");
+ if (__predict_false(m->m_qe.tqe_prev == NULL)) {
+ char msg[128];
+ snprintf(msg, sizeof(msg),
+ "mutex %p own %#x %#x is not on list %p %p",
+ m, m->m_lock.m_owner, m->m_owner, m->m_qe.tqe_prev,
+ m->m_qe.tqe_next);
+ PANIC(msg);
+ }
#endif
}
@@ -135,8 +141,14 @@ mutex_assert_not_owned(struct pthread_mu
#if defined(_PTHREADS_INVARIANTS)
if (__predict_false(m->m_qe.tqe_prev != NULL ||
- m->m_qe.tqe_next != NULL))
- PANIC("mutex is on list");
+ m->m_qe.tqe_next != NULL)) {
+ char msg[128];
+ snprintf(msg, sizeof(msg),
+ "mutex %p own %#x %#x is on list %p %p",
+ m, m->m_lock.m_owner, m->m_owner, m->m_qe.tqe_prev,
+ m->m_qe.tqe_next);
+ PANIC(msg);
+ }
#endif
}
More information about the svn-src-head
mailing list