+
+ if (task != kernel_task) {
+ uth = (struct uthread *)ut;
+ p = get_bsdtask_info(task);
+
+ funnel_state = thread_funnel_set(kernel_flock, TRUE);
+ uth_parent = (struct uthread *)get_bsdthread_info(current_act());
+ if (uth_parent) {
+ if (uth_parent->uu_flag & USAS_OLDMASK)
+ uth->uu_sigmask = uth_parent->uu_oldmask;
+ else
+ uth->uu_sigmask = uth_parent->uu_sigmask;
+ }
+ uth->uu_act = thr_act;
+ //signal_lock(p);
+ if (p)
+ TAILQ_INSERT_TAIL(&p->p_uthlist, uth, uu_list);
+ //signal_unlock(p);
+ (void)thread_funnel_set(kernel_flock, funnel_state);
+ }
+