Lines Matching defs:newthread
1387 _thr_schedule_add(struct pthread *curthread, struct pthread *newthread)
1393 thr_link(newthread);
1399 if ((newthread->attr.flags & PTHREAD_SCOPE_SYSTEM) != 0) {
1401 newthread->kse->k_kcb->kcb_kmbx.km_stack.ss_sp =
1402 newthread->attr.stackaddr_attr;
1403 newthread->kse->k_kcb->kcb_kmbx.km_stack.ss_size =
1404 newthread->attr.stacksize_attr;
1410 KSEG_THRQ_ADD(newthread->kseg, newthread);
1412 newthread->active = 1;
1413 newthread->kse->k_curthread = newthread;
1414 newthread->kse->k_kcb->kcb_kmbx.km_flags = KMF_BOUND;
1415 newthread->kse->k_kcb->kcb_kmbx.km_func =
1417 newthread->kse->k_kcb->kcb_kmbx.km_quantum = 0;
1418 KSE_SET_MBOX(newthread->kse, newthread);
1422 newthread->kse->k_flags &= ~KF_INITIALIZED;
1423 newthread->kse->k_flags |= KF_STARTED;
1425 ret = kse_create(&newthread->kse->k_kcb->kcb_kmbx, 1);
1436 KSE_SCHED_LOCK(curthread->kse, newthread->kseg);
1437 KSEG_THRQ_ADD(newthread->kseg, newthread);
1438 if (newthread->state == PS_RUNNING)
1439 THR_RUNQ_INSERT_TAIL(newthread);
1440 if ((newthread->kse->k_flags & KF_STARTED) == 0) {
1445 newthread->kse->k_flags |= KF_STARTED;
1446 newthread->kse->k_kcb->kcb_kmbx.km_func =
1448 newthread->kse->k_kcb->kcb_kmbx.km_flags = 0;
1449 kse_create(&newthread->kse->k_kcb->kcb_kmbx, 0);
1450 } else if ((newthread->state == PS_RUNNING) &&
1451 KSE_IS_IDLE(newthread->kse)) {
1455 kse_wakeup_one(newthread);
1457 KSE_SCHED_UNLOCK(curthread->kse, newthread->kseg);
1462 thr_unlink(newthread);