A fork fails.
Which would you rather have the kernel do: panic? Lock up (as in the old
days)? Or handle it gracefully.
Your fossil fills up completely. Which would you rather have it do: blow
up on boot, so you can no longer boot your system (current behavior); or
manage disk space so that, even in the worst of all cases, you can still
get booted enough to try to clean up (most unix file systems since 1980
or so).
Nobody's arguing for "best enemy of good". All we're trying to say is,
that there are times a library should not make the decision to
sysfatal() on you. And, there are many real world examples of resource
exhaustion where continuing to run is better than dying. It's not always
better to run, and it may not be better to run in most cases, but
sometimes it is really better not to have the library pre-emptively
decide to exit; in fact, you want a reasonable return value.
I do believe that the shell can handle the case of some types of
resource exhaustion:
switch(forkid = fork()){
case -1:
Xerror("try again");
break;
would you want rc to exit in this case?
ron