diff options
author | David Xu <davidxu@FreeBSD.org> | 2006-12-04 14:15:12 +0000 |
---|---|---|
committer | David Xu <davidxu@FreeBSD.org> | 2006-12-04 14:15:12 +0000 |
commit | 745fbd3a72c2868cb722d25de9950cf8e1fce8d6 (patch) | |
tree | 96b0dbfdbf6b0cc6b79bddb39c447b7346ae3471 /sys/sys/proc.h | |
parent | 02f3691e937b890641f30fd3d13e4a8b88a1b9b9 (diff) | |
download | src-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.h | 1 |
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. |