From: db3l@ans.net (David Bolen)
Newsgroups: comp.os.os2.apps
Subject: Re: Corel Draw 2.5 for OS/2 2.0
Date: 7 Oct 92 15:41:05 GMT
Organization: Advanced Network & Services, Inc. - Elmsford, NY

In article <15938@umd5.umd.edu> adhir@cygnus.umd.edu (Alok Dhir) writes:

>                                                                     Is this
>a bug in OS/2?  Or is OS/2 not really preemptively multitasked?  Or is this
>a feature of a single message queue (a buzz-phrase I picked up somewhere else
>in the os2 groups...not sure what it means)?

This is not a bug - it's a (flawed, IMHO) design point of OS/2.  Yes,
OS/2 is really preemptively multitasked, but all user input is
serialized through a single message queue, so yes, this is what it
hitting you.  Even through you couldn't interact with your machine
while CorelDraw was installing, the machine will still running other
processes besides the installation program, and it was still
preemptively multitasking these processes.  In theory, it's an
application bug, since it is one of the rules of PM programming that
you should respond quickly to user input messages and return back to
the message queue as rapidly as possible.  In practice, however, it is
altogether too easy to run into a situation where one application can
prevent you from interacting with the system while it is performing a
task.

There was a lot of discussion about this over on comp.os.os2.advocacy
for a while - I don't know if it's archived anywhere.  Also, I believe
it's come up in comp.os.os2.programmer as well (as far as how a
programmer should avoid this).

I've also heard that a currently planned change for OS/2 will be to
have per-thread (process?) input message queues, which is also what is
used by NT, and in systems such as X, so that a single window can't
hold up user input to other windows just by not responding quickly to
events.

>                                              Also, I noticed in the Service
>Pack announcement, one of the corrections was that a message box could take
>ove up the system (or something like that)...is this Corel Installation thing
>a result of the message box thing?

Probably not - since CorelDraw presumably uses a dialog box during
installation.  I don't know the particular bug in question, but
message boxes create their own message queues to handle input, so it's
possible that a bug in the message box routine could create the same
sort of lock-up as you are observing with the CorelDraw installation.


Note that none of this has to do with OS/2's ability to preemptively
multitask different threads of execution.  It just has to do with a
serialization issue of user input.  Of course, to my mind, for all
intents and purposes, if you can't interact with the system, for the
majority of users, they won't care if it's executing other stuff
anyway.


--
-- David
--
/-----------------------------------------------------------------------\
 \              David Bolen             \  Internet: db3l@ans.net      /
  |   Advanced Network & Services, Inc.   \   Phone: (914) 789-5327   |
 / 100 Clearbrook Road, Elmsford, NY 10523  \   Fax: (914) 789-5310    \
\-----------------------------------------------------------------------/
Newsgroups: comp.os.os2.apps