[ Event Handling | Reference Manual | Alphabetic Index ]
event_after(+Event, +Time, -DueTime)
Set up an event Event which is triggered at DueTime, after Time seconds have elapsed
- Event
- Atom or Handle
- Time
- Positive number
- DueTime
- Variable, will be bound to a float
Description
The event Event is raised after Time seconds of elapsed time from when
the predicate is executed. This is identical to event_after/2, except
that DueTime gets bound to the time at which the event will be raised.
This time can be compared to the the current event_time as returned by
statistics/2.
For more details, see event_after/2.
Modes and Determinism
- event_after(+, +, -) is det
Exceptions
- (5) type error
- Event is neither an atom nor a handle or Time is not a positive number.
Examples
% With the following the handler definition
report_due(DueTime) :-
Remaining is DueTime - statistics(event_time),
printf("Event is due in %w seconds%n", [Remaining]).
?- event_create(abort, [], E1),
event_after(E1, 5, Due),
event_create(report_due(Due), [], E2),
event_after_every(E2, 1),
repeat, fail.
Event is due in 3.98999999999999 seconds
Event is due in 2.98 seconds
Event is due in 1.97 seconds
Event is due in 0.959999999999994 seconds
Aborting execution ...
Abort
See Also
event_after / 2, event_after_every / 2, cancel_after_event / 2, events_after / 1, event / 1, set_event_handler / 2, current_after_events / 1, event_create / 3, event_retrieve / 3, get_flag / 2, statistics / 2