version 1.33, 2005/11/12 02:28:31 |
version 1.33.10.2, 2006/05/24 10:58:41 |
Line 87 sys__lwp_create(struct lwp *l, void *v, |
|
Line 87 sys__lwp_create(struct lwp *l, void *v, |
|
|
|
newuc = pool_get(&lwp_uc_pool, PR_WAITOK); |
newuc = pool_get(&lwp_uc_pool, PR_WAITOK); |
|
|
error = copyin(SCARG(uap, ucp), newuc, sizeof(*newuc)); |
error = copyin(SCARG(uap, ucp), newuc, |
|
l->l_proc->p_emul->e_sa->sae_ucsize); |
if (error) |
if (error) |
return (error); |
return (error); |
|
|
Line 216 lwp_suspend(struct lwp *l, struct lwp *t |
|
Line 217 lwp_suspend(struct lwp *l, struct lwp *t |
|
|
|
if (t == l) { |
if (t == l) { |
SCHED_LOCK(s); |
SCHED_LOCK(s); |
|
KASSERT(l->l_stat == LSONPROC); |
l->l_stat = LSSUSPENDED; |
l->l_stat = LSSUSPENDED; |
|
p->p_nrlwps--; |
/* XXX NJWLWP check if this makes sense here: */ |
/* XXX NJWLWP check if this makes sense here: */ |
p->p_stats->p_ru.ru_nvcsw++; |
p->p_stats->p_ru.ru_nvcsw++; |
mi_switch(l, NULL); |
mi_switch(l, NULL); |
Line 504 newlwp(struct lwp *l1, struct proc *p2, |
|
Line 507 newlwp(struct lwp *l1, struct proc *p2, |
|
if (rnewlwpp != NULL) |
if (rnewlwpp != NULL) |
*rnewlwpp = l2; |
*rnewlwpp = l2; |
|
|
l2->l_addr = (struct user *)uaddr; |
l2->l_addr = UAREA_TO_USER(uaddr); |
uvm_lwp_fork(l1, l2, stack, stacksize, func, |
uvm_lwp_fork(l1, l2, stack, stacksize, func, |
(arg != NULL) ? arg : l2); |
(arg != NULL) ? arg : l2); |
|
|