Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_glue.c
Show First 20 Lines • Show All 559 Lines • ▼ Show 20 Lines | vm_forkproc(struct thread *td, struct proc *p2, struct thread *td2, | ||||
} | } | ||||
if (flags & RFMEM) { | if (flags & RFMEM) { | ||||
p2->p_vmspace = p1->p_vmspace; | p2->p_vmspace = p1->p_vmspace; | ||||
atomic_add_int(&p1->p_vmspace->vm_refcnt, 1); | atomic_add_int(&p1->p_vmspace->vm_refcnt, 1); | ||||
} | } | ||||
dset = td2->td_domain.dr_policy; | dset = td2->td_domain.dr_policy; | ||||
while (vm_page_count_severe_set(&dset->ds_mask)) { | while (vm_page_count_severe_set(&dset->ds_mask)) { | ||||
vm_wait_doms(&dset->ds_mask); | vm_wait_doms(&dset->ds_mask, 0); | ||||
} | } | ||||
if ((flags & RFMEM) == 0) { | if ((flags & RFMEM) == 0) { | ||||
p2->p_vmspace = vm2; | p2->p_vmspace = vm2; | ||||
if (p1->p_vmspace->vm_shm) | if (p1->p_vmspace->vm_shm) | ||||
shmfork(p1, p2); | shmfork(p1, p2); | ||||
} | } | ||||
Show All 27 Lines |