pragma Unreserve_All_Interrupts;
Normally certain interrupts are reserved to the implementation. Any attempt
to attach an interrupt causes Program_Error to be raised, as described in
RM C.3.2(22). A typical example is the SIGINT
interrupt used in
many systems for a Ctrl-C interrupt. Normally this interrupt is
reserved to the implementation, so that Ctrl-C can be used to
interrupt execution.
If the pragma Unreserve_All_Interrupts
appears anywhere in any unit in
a program, then all such interrupts are unreserved. This allows the
program to handle these interrupts, but disables their standard
functions. For example, if this pragma is used, then pressing
Ctrl-C will not automatically interrupt execution. However,
a program can then handle the SIGINT
interrupt as it chooses.
For a full list of the interrupts handled in a specific implementation,
see the source code for the spec of Ada.Interrupts.Names
in
file a-intnam.ads. This is a target dependent file that contains the
list of interrupts recognized for a given target. The documentation in
this file also specifies what interrupts are affected by the use of
the Unreserve_All_Interrupts
pragma.
For a more general facility for controlling what interrupts can be
handled, see pragma Interrupt_State
, which subsumes the functionality
of the Unreserve_All_Interrupts
pragma.