The %alarm() function instructs the alarm clock of the calling process to send the signal SIGALRM to the calling process.
For Windows: Not Supported
var = %alarm(num)
|num||Number of seconds before the signal is sent.|
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.
* 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