diff options
author | davidxu <davidxu@FreeBSD.org> | 2004-11-05 22:40:33 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2004-11-05 22:40:33 +0000 |
commit | ab5ce779835b16e91fdb96b3c867841ac3dcf7ff (patch) | |
tree | 4fa5720d1e65be7c53f8fae524f5130710f764c8 /sys | |
parent | 1ea9917110db0667941583348b83281406c8df76 (diff) | |
download | FreeBSD-src-ab5ce779835b16e91fdb96b3c867841ac3dcf7ff.zip FreeBSD-src-ab5ce779835b16e91fdb96b3c867841ac3dcf7ff.tar.gz |
Respect TDF_SINTR, don't suspend uninterruptible thread.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_thread.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c index 21d7000..a3f34f6 100644 --- a/sys/kern/kern_thread.c +++ b/sys/kern/kern_thread.c @@ -832,11 +832,10 @@ thread_single(int mode) continue; /* * maybe other inhibitted states too? - * XXXKSE Is it totally safe to - * suspend a non-interruptable thread? */ - if (td2->td_inhibitors & - (TDI_SLEEPING | TDI_SWAPPED)) + if ((td2->td_flags & TDF_SINTR) && + (td2->td_inhibitors & + (TDI_SLEEPING | TDI_SWAPPED))) thread_suspend_one(td2); break; } |