<doc>
  <legacy_id>1688</legacy_id>
  <name>allowInterrupts</name>
  <type>property</type>
  <syntax>
    <example>set the allowInterrupts to {true | false}</example>
  </syntax>
  <library></library>
  <objects>
    <global/>
  </objects>
  <synonyms>
  </synonyms>
  <classification>
    <category>User Interaction</category>
  </classification>
  <references>
    <command tag="unlock error dialogs">unlock error dialogs Command</command>
    <function tag="interrupt">interrupt Function</function>
    <property tag="cantAbort">cantAbort Property</property>
  </references>
  <history>
    <introduced version="1.0">Added.</introduced>
  </history>
  <platforms>
    <mac/>
    <windows/>
    <linux/>
    <ios/>
    <android/>
  </platforms>
  <classes>
    <desktop/>
    <server/>
    <web/>
    <mobile/>
  </classes>
  <security>
  </security>
  <summary>Specifies whether the user can halt a <glossary tag="handler">handler</glossary> with a <glossary tag="key combination">key combination</glossary>.</summary>
  <examples>
    <example>set the allowInterrupts to false</example>
    <example>set the allowInterrupts to the hilite of button 1</example>
  </examples>
  <description>
    <p>Use the <b>allowInterrrupts</b> <glossary tag="property">property</glossary> to prevent users from interrupting <glossary tag="handler">handlers</glossary> that must run to completion. For example, some <glossary tag="handler">handlers</glossary> that change data cannot be interrupted safely, because they will leave data in an inconsistent state if interrupted.</p><p/><p><b>Value:</b></p><p>The <b>allowInterrupts</b> property is true or false.</p><p/><p>By default, the <b>allowInterrupts</b> <glossary tag="property">property</glossary> is true.</p><p/><p><b>Comments:</b></p><p>If the <b>allowInterrupts</b> <glossary tag="property">property</glossary> is set to true, the user can halt <glossary tag="handler">handlers</glossary> by typing Control-period or Control-break (on <function tag="openStacks">Windows</function> or <glossary tag="Unix">Unix</glossary>) or Command-period (on <glossary tag="Mac OS">Mac OS</glossary>). Setting this <glossary tag="property">property</glossary> to false disables this capability and ensures that the user cannot interrupt a handler.</p><p/><p>If the <b>allowInterrupts</b> <glossary tag="property">property</glossary> is set to false and the user attempts to interrupt the <glossary tag="handler">handler</glossary>, the <function tag="interrupt">interrupt</function> function <glossary tag="return">returns</glossary> true. To provide a clean <control_st tag="exit">exit</control_st>, check this function and do any needed cleanup tasks before <glossary tag="exit">exiting</glossary> the <glossary tag="handler">handler</glossary>.</p><p/><p>Setting the <b>allowInterrupts</b> <glossary tag="property">property</glossary> to false is functionally equivalent to setting the <property tag="cantAbort">cantAbort</property> <glossary tag="property">property</glossary> to true for each open <object tag="stack">stack</object>.</p><p/><p><img src="202650"/> <b>Caution!</b> Before setting the <b>allowInterrupts</b> <glossary tag="property">property</glossary> to false, make sure all <glossary tag="handler">handlers</glossary> that may be affected have been thoroughly tested. If <b>allowInterrupts</b> is set to false, you cannot interrupt a runaway <glossary tag="handler">handler</glossary> with the standard <glossary tag="key combination">key combination</glossary>.</p>
  </description>
</doc>