summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2004-11-05 22:40:33 +0000
committerdavidxu <davidxu@FreeBSD.org>2004-11-05 22:40:33 +0000
commitab5ce779835b16e91fdb96b3c867841ac3dcf7ff (patch)
tree4fa5720d1e65be7c53f8fae524f5130710f764c8 /sys
parent1ea9917110db0667941583348b83281406c8df76 (diff)
downloadFreeBSD-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.c7
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;
}
OpenPOWER on IntegriCloud