[ Obsolete | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

set_timer(+Timer, +Interval)

Start (or stop) the specified Timer to send signals in intervals of Interval seconds.
Timer
One of the atoms real, virtual or profile.
Interval
Number (integer or float)

This built-in predicate is obsolete!

Description

Used to initialise one of the 3 operating system's interval timers. After a call to this predicate, the corresponding timer will start sending signals to the ECLiPSe process every Interval seconds. Every call will change the previous interval of the specified timer. A timer is switched off by setting its Interval to 0.

                             -----------------
                             |Timer   |Signal |
                             -----------------
                             |real    |alrm   |
                             |virtual |vtalrm |
                             |profile |prof   |
                             -----------------

Modes and Determinism

Exceptions

(4) instantiation fault
Timer orInterval is not instantiated.
(5) type error
Timer is not an atom.
(5) type error
Interval is not integer or float.
(6) out of range
Timer is an atom not naming a timer.
(170) system interface error
Interval is an out of range timer interval.

Examples

[eclipse]: [user].
 handler(N) :-
        getval(count, Count),
        writeln(signal(N)-Count),
        ( Count > 0 ->
                decval(count)
        ;
                set_timer(real, 0)      % switch off the timer
        ).

 :- set_interrupt_handler(alrm, handler/1).
 user       compiled traceable 372 bytes in 0.00 seconds

yes.
[eclipse]: setval(count, 4), set_timer(real, 0.5).

yes.
[eclipse]: signal(14) - 4
signal(14) - 3
signal(14) - 2
signal(14) - 1
signal(14) - 0



See Also

event_after / 2, event_after_every / 2, alarm / 1, current_interrupt / 2, get_timer / 2, sleep / 1, set_interrupt_handler / 2