<sys/proc.h>: Make ONLY_LWP_IN_PROC() an inline function.
authorSascha Wildner <saw@online.de>
Mon, 11 Mar 2013 16:53:32 +0000 (17:53 +0100)
committerSascha Wildner <saw@online.de>
Mon, 11 Mar 2013 16:54:21 +0000 (17:54 +0100)
More readable, plus it also fixes some warnings we were getting with
gcc47 (-Wunused-value).

Thanks for comments to aggelos and vsrinivas.

sys/sys/proc.h

index 5d86b07..09a897c 100644 (file)
@@ -408,11 +408,17 @@ struct    proc {
 #define        FIRST_LWP_IN_PROC(p)            RB_FIRST(lwp_rb_tree, &(p)->p_lwp_tree)
 #define        FOREACH_LWP_IN_PROC(lp, p)      \
        RB_FOREACH(lp, lwp_rb_tree, &(p)->p_lwp_tree)
-#define        ONLY_LWP_IN_PROC(p)             \
-       (p->p_nthreads != 1 &&          \
-       (panic("%s: proc %p (pid %d cmd %s) has more than one thread",  \
-              __func__, p, p->p_pid, p->p_comm), 1),   \
-       RB_ROOT(&p->p_lwp_tree))
+#define        ONLY_LWP_IN_PROC(p)             _only_lwp_in_proc(p, __func__)
+
+static inline struct lwp *
+_only_lwp_in_proc(struct proc *p, const char *caller)
+{
+       if (p->p_nthreads != 1) {
+               panic("%s: proc %p (pid %d cmd %s) has more than one thread",
+                   caller, p, p->p_pid, p->p_comm);
+       }
+       return RB_ROOT(&p->p_lwp_tree);
+}
 
 /*
  * We use process IDs <= PID_MAX; PID_MAX + 1 must also fit in a pid_t,