aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/proc.h
diff options
context:
space:
mode:
authorDavid Xu <davidxu@FreeBSD.org>2006-12-04 14:15:12 +0000
committerDavid Xu <davidxu@FreeBSD.org>2006-12-04 14:15:12 +0000
commit745fbd3a72c2868cb722d25de9950cf8e1fce8d6 (patch)
tree96b0dbfdbf6b0cc6b79bddb39c447b7346ae3471 /sys/sys/proc.h
parent02f3691e937b890641f30fd3d13e4a8b88a1b9b9 (diff)
downloadsrc-745fbd3a72c2868cb722d25de9950cf8e1fce8d6.tar.gz
src-745fbd3a72c2868cb722d25de9950cf8e1fce8d6.zip
if a thread blocked on userland condition variable is
pthread_cancel()ed, it is expected that the thread will not consume a pthread_cond_signal(), therefor, we use thr_wake() to mark a flag, the flag tells a thread calling do_cv_wait() in umtx code to not block on a condition variable. Thread library is expected that once a thread detected itself is in pthread_cond_wait, it will call the thr_wake() for itself in its SIGCANCEL handler.
Notes
Notes: svn path=/head/; revision=164876
Diffstat (limited to 'sys/sys/proc.h')
-rw-r--r--sys/sys/proc.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
index 454982aca4c9..99dbfc6fd9e4 100644
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -455,6 +455,7 @@ struct thread {
#define TDP_GEOM 0x00010000 /* Settle GEOM before finishing syscall */
#define TDP_SOFTDEP 0x00020000 /* Stuck processing softdep worklist */
#define TDP_NORUNNINGBUF 0x00040000 /* Ignore runningbufspace check */
+#define TDP_WAKEUP 0x00080000 /* Don't sleep in umtx cond_wait */
/*
* Reasons that the current thread can not be run yet.