summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/kern
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-31 09:50:45 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-31 09:50:45 +0100
commit1fd5083234c1657b9d7c22dcc2cd31255176c8e6 (patch)
tree98dd661e7a1a872f0606f3104deff21176e9a723 /freebsd/sys/kern
parentrtems-bsd-mutex: Use thread queue name (diff)
downloadrtems-libbsd-1fd5083234c1657b9d7c22dcc2cd31255176c8e6.tar.bz2
SLEEPQUEUE(9): Add wmesg to thread wait info
Diffstat (limited to 'freebsd/sys/kern')
-rw-r--r--freebsd/sys/kern/subr_sleepqueue.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/freebsd/sys/kern/subr_sleepqueue.c b/freebsd/sys/kern/subr_sleepqueue.c
index d0288d67..971f92dd 100644
--- a/freebsd/sys/kern/subr_sleepqueue.c
+++ b/freebsd/sys/kern/subr_sleepqueue.c
@@ -399,12 +399,13 @@ sleepq_add(void *wchan, struct lock_object *lock, const char *wmesg, int flags,
executing = td->td_thread;
_Thread_Wait_acquire_default(executing, &lock_context);
td->td_sq_state = TD_SQ_TIRED;
+ executing->Wait.return_argument_second.immutable_object = wmesg;
#endif /* __rtems__ */
td->td_sleepqueue = NULL;
td->td_sqqueue = queue;
td->td_wchan = wchan;
- td->td_wmesg = wmesg;
#ifndef __rtems__
+ td->td_wmesg = wmesg;
if (flags & SLEEPQ_INTERRUPTIBLE) {
td->td_flags |= TDF_SINTR;
td->td_flags &= ~TDF_SLEEPABORT;
@@ -968,7 +969,9 @@ sleepq_resume_thread(struct sleepqueue *sq, struct thread *td, int pri)
_Thread_Wait_acquire_default_critical(thread, &lock_context);
#endif /* __rtems__ */
+#ifndef __rtems__
td->td_wmesg = NULL;
+#endif /* __rtems__ */
td->td_wchan = NULL;
#ifndef __rtems__
td->td_flags &= ~TDF_SINTR;