[comp.sys.amiga.tech] Avoiding Intuition deadlocks

riw@linus.liu.se (Rickard Westman) (12/10/89)

Intuition deadlocks caused by misapplication of REQ/SIZE/MENUVERIFY are,
unfortunately, quite common.   When the deadlock occurs *every* task is
affected, not only the offending one.

Everybody seems to need this feature, but few are obviously able to handle
it properly.

I am not very surprised.  Knowing when you have to turn off verifying
is not that easy after all.  It is likely that you forget it at some point
where you _might_ have to Wait() for user response.  One case when this is
likely to happen is if you use overlays.  The overlay manager calls DOS at
some (unexpected) time, and DOS brings up a requester ("Insert volume
blablabla").   The stupid user then hits the menu button, and since
MENUVERIFYing is turned on we have a very nasty deadlock.

But is that really necessary?  Couldn't Intuition Wait() for a MENUUP
event (from input.device or whatever) at the same time as it is waiting for
MENUCANCEL/MENUHOT?  If the user releases the menu button before
verification is done, Intuition will act as if it had got a MENUCANCEL
message - and there will be no deadlock. To indicate that something really
went wrong, DisplayBeep() could be called.

Is this possible?  In 1.4?  Please?



-----------------------------------------------------------------------------
 Richard Westman                  |                  |
----------------------------------| EMAIL:           | 'Hmm. In B, Fenby.'
 University of Linkoping          | riw@linus.liu.se |        - Kate Bush
 Sweden                           |                  |
-----------------------------------------------------------------------------