Syntax:
pragma Abort_Defer;
This pragma must appear at the start of the statement sequence of a
handled sequence of statements (right after the begin
). It has
the effect of deferring aborts for the sequence of statements (but not
for the declarations or handlers, if any, associated with this statement
sequence). This can also be useful for adding a polling point in Ada code,
where asynchronous abort of tasks is checked when leaving the statement
sequence, and is lighter than, for example, using delay 0.0;
, since with
zero-cost exception handling, propagating exceptions (implicitly used to
implement task abort) cannot be done reliably in an asynchronous way.
An example of usage would be:
-- Add a polling point to check for task aborts begin pragma Abort_Defer; end;