release and thoughts
Fri, 18 Aug 1995 01:39:34 -0400

Billy Tanksley:
   Cooperate is more flexible than preemptive simply because it's more
   primitive, more basic.  Preemptive is a simple addition to
   cooperative, and could easily be done in a small part of the system
   without requiring any change to the rest.

Technologically, sure -- for the case where the underlying hardware
supports pre-emption, but you've procastinated on making it available
in the system.

But, in terms of interface definition, not in the least bit.  You
*need* the concept of atomic (indivisible) actions -- these are
trivial to obtain in a cooperative multitasking environment, but must
be explicitly defined in a preemptive multitasking environment.

This is *why* environments like MS-Windows, and the Macintosh, still
lack a robust implementation of pre-emptive multitasking -- it would
break existing applications that people rely on.