ALARM (The GNU Fortran Compiler) (original) (raw)


8.13 ALARM — Execute a routine after a given delay

Synopsis:

CALL ALARM(SECONDS, HANDLER [, STATUS])

Description:

ALARM(SECONDS, HANDLER [, STATUS]) causes external subroutine HANDLERto be executed after a delay of SECONDS by using alarm(2) to set up a signal and signal(2) to catch it. If STATUS is supplied, it is returned with the number of seconds remaining until any previously scheduled alarm was due to be delivered, or zero if there was no previously scheduled alarm.

Class:

Subroutine

Arguments:

SECONDS The type of the argument shall be a scalarINTEGER. It is INTENT(IN).
HANDLER Signal handler (INTEGER FUNCTION orSUBROUTINE) or dummy/global INTEGER scalar. The scalar values may be either SIG_IGN=1 to ignore the alarm generated or SIG_DFL=0 to set the default action. It is INTENT(IN).
STATUS (Optional) STATUS shall be a scalar variable of the default INTEGER kind. It is INTENT(OUT).

Example:

program test_alarm external handler_print integer i call alarm (3, handler_print, i) print *, i call sleep(10) end program test_alarm

This causes the external routine handler_print to be called after 3 seconds.

Standard:

GNU extension