[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

The program may call ModifyIDCMP() to turn IDCMP_MENUVERIFY and the other
VERIFY IDCMP options off.  It is important that this be done each and
every time that the application is directly or indirectly waiting for
Intuition, since Intuition may be waiting for the application, but not
watching the window message port for IDCMP_MENUVERIFY events.  The program
cannot wait for a gadget or mouse event without checking also for any
IDCMP_MENUVERIFY event messages that may require program response.

The most common problem area is System Requesters (AutoRequest() and
EasyRequest()).  Before AutoRequest() and EasyRequest() return control to
the application, Intuition must be free to run and accept a response from
the user.  If the user presses the menu button, Intuition will wait for
the program to reply to the IDCMP_MENUVERIFY event and a deadlock results.

Therefore, it is extremely important to use ModifyIDCMP() to turn off all
verify messages before calling AutoRequest(), EasyRequest() or, directly
or indirectly, AmigaDOS, since many error conditions in the DOS require
user input in the form of an EasyRequest().  Indirect DOS calls include
OpenLibrary(), OpenDevice(), and OpenDiskFont().

Beginning with V36, all windows that have the IDCMP_MENUVERIFY bit set
must respond to Intuition within a set time period, or the menu operation
will time out and the menu action will be canceled.  This prevents the
deadlocks that were possible under previous versions of the operating
system.