]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/linux/sched.h
Merge branch 'linus' into sched-devel
[net-next-2.6.git] / include / linux / sched.h
index 2db1485f865df6a813a4eeddd795232804f95b45..eaf821072dbd687d265636975efe45112a09fb9d 100644 (file)
@@ -2009,6 +2009,19 @@ static inline int fatal_signal_pending(struct task_struct *p)
        return signal_pending(p) && __fatal_signal_pending(p);
 }
 
+static inline int signal_pending_state(long state, struct task_struct *p)
+{
+       if (!(state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL)))
+               return 0;
+       if (!signal_pending(p))
+               return 0;
+
+       if (state & (__TASK_STOPPED | __TASK_TRACED))
+               return 0;
+
+       return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
+}
+
 static inline int need_resched(void)
 {
        return unlikely(test_thread_flag(TIF_NEED_RESCHED));