Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!killer!tness7!tness1!sugar!peter
From: peter@sugar.UUCP (Peter da Silva)
Newsgroups: comp.sys.amiga
Subject: Re: Amiga UNIX
Message-ID: <2188@sugar.UUCP>
Date: 27 Jun 88 01:37:16 GMT
References: <1985@uhccux.uhcc.hawaii.edu> <4079@cbmvax.UUCP> <6811@cup.portal.com> <4112@cbmvax.UUCP>
Organization: Sugar Land UNIX - Houston, TX
Lines: 23

In article <4112@cbmvax.UUCP>, jesup@cbmvax.UUCP (Randell Jesup) writes:
> 	All you need to do a fork() is to copy the data/stack segments on
> task swaps between those two.

My claim is that this gives you an unacceptable speed penalty. One of the
most common programs that does fancy stuff with forks is the shell. Every
time you run a script that does something like:

cat file | while read FOO BAR JUNK; do frobb $FOO | baz $BAR; done | ...

That 'while' (according to the docs: I haven't seen the Bourne shell source)
runs in a forked subshell. Now all you have to do is stick this in the
background, or do this twice, and you die die die die...

> Luckily, VERY few programs
> fork without exec()ing or exit()ing soon thereafter (though they often
> muck with fd's, etc first.)

Yeh, the shell is the only one I can think of that I use often :->.
-- 
-- `-_-' Peter (have you hugged your wolf today?) da Silva.
--   U   Mail to ...!uunet!sugar!peter, flames to /dev/null.
-- "A foolish consistancy is the hobgoblin of little minds".