# %alarm() function

The %alarm() function instructs the
alarm clock of the calling process to send the signal SIGALRM to the
calling process.

**For Windows:** Not Supported

## Syntax

```
var = %alarm(num)
```

## Parameter(s)

| num | Number of seconds before the signal is sent. |
| --- | --- |

## Description

The default alarm handler is
null (that is, it just interrupts the process). If *num* is 0, any previous alarm request is canceled. If a user-written
built-in function changes the alarm signal handler, it remains in
effect, even if the FlashBASIC program terminates, until the process
is disconnected from the virtual machine.

The alarm signal handler
can be assigned to any D3 statement using the TCL trap command.

To differentiate between an alarm and another interrupt,
the FlashBASIC program may have to check the time. See the example
below.

## Example(s)

```
* Set a timer
alarmend=time()+3
%alarm(3)
* Read from device
n=%recv(fd, buffer, bufsize)
if n<0 and system(0)=eintr then
 * Read was interrupted
 if time() >= alarmend then
 * Was the timer
 stop "time out"
 end else
 * Not the timer. Disarm it
 %alarm(0)
 end
end else
 * Read completed. Cancel timer
 %alarm(0)
end
```

## See also

- [FlashBASIC C functions overview](https://d3codex.com/pickbasic-flashbasic/flashbasic-c-functions-overview/)
- [cfunction statement](https://d3codex.com/pickbasic-flashbasic/cfunction-statement/)
- [trap command](https://d3codex.com/tcl/trap-command/)
- [useralarm command](https://d3codex.com/tcl/useralarm-command/)

---
Source: https://d3codex.com/pickbasic-flashbasic/percent-alarm-function/ - part of the D3Codex reference.
