aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_exec.c
diff options
context:
space:
mode:
authorJohn Dyson <dyson@FreeBSD.org>1997-04-12 04:07:50 +0000
committerJohn Dyson <dyson@FreeBSD.org>1997-04-12 04:07:50 +0000
commitc04b956c6f6a2fdc4892562bd2f744bc1d9b0b21 (patch)
tree90bc9945b2ce8d34bddcd19a35fd5399a7abe2a8 /sys/kern/kern_exec.c
parentc4c1e9823380f10fb26635a6707ad441a71288bc (diff)
downloadsrc-c04b956c6f6a2fdc4892562bd2f744bc1d9b0b21.tar.gz
src-c04b956c6f6a2fdc4892562bd2f744bc1d9b0b21.zip
Effectively remove the previous commit to fix threads forking. The
change was a false-start, and needs more work.
Notes
Notes: svn path=/head/; revision=24830
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r--sys/kern/kern_exec.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index c8311035a1a2..8c88134c9073 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: kern_exec.c,v 1.57 1997/04/04 09:06:20 davidg Exp $
+ * $Id: kern_exec.c,v 1.58 1997/04/11 23:37:23 dyson Exp $
*/
#include <sys/param.h>
@@ -378,22 +378,26 @@ exec_new_vmspace(imgp)
* otherwise, create a new VM space so that other threads are
* not disrupted
*/
+#if 0
if (vmspace->vm_refcnt == 1) {
+#endif
if (vmspace->vm_shm)
shmexit(imgp->proc);
pmap_remove_pages(&vmspace->vm_pmap, 0, USRSTACK);
vm_map_remove(map, 0, USRSTACK);
+#if 0
} else {
struct vmspace *oldvmspace = vmspace;
- --vmspace->vm_refcnt;
vmspace = vmspace_alloc(map->min_offset, map->max_offset,
map->entries_pageable);
bcopy(&oldvmspace->vm_startcopy, &vmspace->vm_startcopy,
- (caddr_t) (vmspace+ 1) - (caddr_t) &vmspace->vm_startcopy);
+ (caddr_t) (vmspace + 1) - (caddr_t) &vmspace->vm_startcopy);
imgp->proc->p_vmspace = vmspace;
map = &vmspace->vm_map;
+ --oldvmspace->vm_refcnt;
}
+#endif
/* Allocate a new stack */
error = vm_map_find(map, NULL, 0, (vm_offset_t *)&stack_addr,