Have you tried supporting a commercial NetWare NLM lately? (for the
uninitiated, a NLM is a Netware Loadable Module, which is basically a
server-resident program).
Cooperative multitasking turns one program hanging into the entire
server hanging. It's damned easy to end up with an infinite loop or
something under certain conditions in a large application. Also,
since programs have to explicitly yield the CPU to other programs, any
failure to yield for long periods significantly delays server response
time and performance.
Of course, the fact that NetWare hasn't any memory protection anywhere
is far worse -- anything can splat anything else's data at any time.
Supporting software that runs in such an environment is a nightmare --
*any* bug in any piece of software running on that server can *easily*
bring down the entire machine, corrupt data, anything.
It amazes me that anyone would trust a netware server with their data,
personally. No wonder all the corporates want to turn to NT, which
for all its flaws is a Real OS.
So, cooperative multitasking is fine in a limited, controlled system
which needs the low overhead; in anything bigger it's disgusting.
-Matt (speaking only for himself here)