The resolution of the alarm depends on the underlying implementation, which is based on pthread_cond_timedwait() (on Windows on the pthread emulation thereof). Long-running foreign predicates that do not call PL_handle_signals() may further delay the alarm. The relation to blocking system calls (sleep, reading from slow devices, etc.) is undefined and varies between implementations.
Options is a list of Name(Value)
terms. Defined options are:
- remove(Bool)
- If
true
(defaultfalse
), the timer is removed automatically after fireing. Otherwise it must be destroyed explicitly using remove_alarm/1. - install(Bool)
- If
false
(defaulttrue
), the timer is allocated but not scheduled for execution. It must be started later using install_alarm/1.