summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread
diff options
context:
space:
mode:
authorcem <cem@FreeBSD.org>2016-06-01 16:12:26 +0000
committercem <cem@FreeBSD.org>2016-06-01 16:12:26 +0000
commit6a53a3dd42a3a167fc3c526e686e4f318a87dc75 (patch)
tree642e082d766685b4166839b0a83ba0a2a5044e0f /lib/libthr/thread
parent51037ae517bcc9a8a275eb7ff07c708d803a9173 (diff)
downloadFreeBSD-src-6a53a3dd42a3a167fc3c526e686e4f318a87dc75.zip
FreeBSD-src-6a53a3dd42a3a167fc3c526e686e4f318a87dc75.tar.gz
libthr: Use formatted PANIC()
No functional change, although _thread_printf() may be slightly less functional or render some values differently from libc snprintf(3). No ABI change. Reviewed by: kib Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D6672
Diffstat (limited to 'lib/libthr/thread')
-rw-r--r--lib/libthr/thread/thr_cond.c2
-rw-r--r--lib/libthr/thread/thr_exit.c9
-rw-r--r--lib/libthr/thread/thr_mutex.c23
3 files changed, 10 insertions, 24 deletions
diff --git a/lib/libthr/thread/thr_cond.c b/lib/libthr/thread/thr_cond.c
index 467552b..506b8ec 100644
--- a/lib/libthr/thread/thr_cond.c
+++ b/lib/libthr/thread/thr_cond.c
@@ -258,7 +258,7 @@ cond_wait_user(struct pthread_cond *cvp, struct pthread_mutex *mp,
curthread = _get_curthread();
if (curthread->wchan != NULL)
- PANIC("thread was already on queue.");
+ PANIC("thread %p was already on queue.", curthread);
if (cancel)
_thr_testcancel(curthread);
diff --git a/lib/libthr/thread/thr_exit.c b/lib/libthr/thread/thr_exit.c
index 6feb909..3ead7ff 100644
--- a/lib/libthr/thread/thr_exit.c
+++ b/lib/libthr/thread/thr_exit.c
@@ -209,13 +209,10 @@ _pthread_exit_mask(void *status, sigset_t *mask)
struct pthread *curthread = _get_curthread();
/* Check if this thread is already in the process of exiting: */
- if (curthread->cancelling) {
- char msg[128];
- snprintf(msg, sizeof(msg), "Thread %p has called "
+ if (curthread->cancelling)
+ PANIC("Thread %p has called "
"pthread_exit() from a destructor. POSIX 1003.1 "
"1996 s16.2.5.2 does not allow this!", curthread);
- PANIC(msg);
- }
/* Flag this thread as exiting. */
curthread->cancelling = 1;
@@ -312,7 +309,7 @@ exit_thread(void)
#if defined(_PTHREADS_INVARIANTS)
if (THR_IN_CRITICAL(curthread))
- PANIC("thread exits with resources held!");
+ PANIC("thread %p exits with resources held!", curthread);
#endif
/*
* Kernel will do wakeup at the address, so joiner thread
diff --git a/lib/libthr/thread/thr_mutex.c b/lib/libthr/thread/thr_mutex.c
index 2d507e7..5a99605 100644
--- a/lib/libthr/thread/thr_mutex.c
+++ b/lib/libthr/thread/thr_mutex.c
@@ -135,13 +135,9 @@ mutex_assert_is_owned(struct pthread_mutex *m __unused)
{
#if defined(_PTHREADS_INVARIANTS)
- if (__predict_false(m->m_qe.tqe_prev == NULL)) {
- char msg[128];
- snprintf(msg, sizeof(msg),
- "mutex %p own %#x is not on list %p %p",
+ if (__predict_false(m->m_qe.tqe_prev == NULL))
+ PANIC("mutex %p own %#x is not on list %p %p",
m, m->m_lock.m_owner, m->m_qe.tqe_prev, m->m_qe.tqe_next);
- PANIC(msg);
- }
#endif
}
@@ -152,27 +148,20 @@ mutex_assert_not_owned(struct pthread *curthread __unused,
#if defined(_PTHREADS_INVARIANTS)
if (__predict_false(m->m_qe.tqe_prev != NULL ||
- m->m_qe.tqe_next != NULL)) {
- char msg[128];
- snprintf(msg, sizeof(msg),
- "mutex %p own %#x is on list %p %p",
+ m->m_qe.tqe_next != NULL))
+ PANIC("mutex %p own %#x is on list %p %p",
m, m->m_lock.m_owner, m->m_qe.tqe_prev, m->m_qe.tqe_next);
- PANIC(msg);
- }
if (__predict_false(is_robust_mutex(m) &&
(m->m_lock.m_rb_lnk != 0 || m->m_rb_prev != NULL ||
(is_pshared_mutex(m) && curthread->robust_list ==
(uintptr_t)&m->m_lock) ||
(!is_pshared_mutex(m) && curthread->priv_robust_list ==
- (uintptr_t)&m->m_lock)))) {
- char msg[128];
- snprintf(msg, sizeof(msg),
+ (uintptr_t)&m->m_lock))))
+ PANIC(
"mutex %p own %#x is on robust linkage %p %p head %p phead %p",
m, m->m_lock.m_owner, (void *)m->m_lock.m_rb_lnk,
m->m_rb_prev, (void *)curthread->robust_list,
(void *)curthread->priv_robust_list);
- PANIC(msg);
- }
#endif
}
OpenPOWER on IntegriCloud