Calling the alarm function with a 0 argument cancels any pending
alarms.
Unless it is intercepted or ignored, the signal generated by
alarm terminates the process. Successive alarm calls reinitialize
the alarm clock. Alarms are not stacked.
Because the clock has a 1-second resolution, the signal may
occur up to 1 second early. If the SIGALRM signal is intercepted,
resumption of execution may be held up due to scheduling delays.
When the SIGALRM signal is generated, a call to SYS$WAKE is
generated whether or not the process is hibernating. The pending
wake causes the current pause() to return immediately (after
completing any function that catches the SIGALRM).