[gclist] Whats the right algorithm for this case?

Charles Fiterman cef@geodesic.com
Mon, 03 Feb 1997 13:19:30 -0600

>Not all vehicular applications are mission critical, and not all
>mission critical software is allocation-free. Do you suppose that the
>AI system which CMU has driving vans around Pittsburgh runs without
>any allocation? (I don't know either, but I have a strong suspicion).

First I don't know about the system you describe but I have a lot of 
experience using computers to run machinery. Such systems are necessarily
almost all idle time or they don't work. You have a program which does
action A and waits for condition B. It must have the capacity to handle
a sudden flurry of problems in a short time but that worst case is
rare to nonexistent. So the system spends 99+% of its time spinning
its wheels with nothing to do.

Its sort of like how airline pilots describe their work "Hours of
boredom seconds of terror." If the collector can help to shift some
work from those seconds of terror into the hours of boredom that's
great. But I've never seen a system that was running machinery with
a single malloc().

What C++ calls "try" blocks are the backbone of these systems. You
start an action and if it fails there is some action that must be
taken to clean up. I called them "always blocks" and "onexit blocks"
25 years ago. Shut down a task and it unrolls executing its always
and onexit blocks. Finalizers are a generalization of this notion.
Charles Fiterman		Geodesic Systems
414 North Orleans Suite 410	Phone 312 832 1221 x223
Chicago IL 60610-4418		FAX   312 832 1230

Why do we never see headlines like psychic, 
astrologer or biblical scholar wins lottery?