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

current_after_events(-Events)

Check or find currently pending after events.
Events
List of due / 2 structures or variable

Description

If Events is a variable, then all the currently pending events are returned as a list. The list elements are of the form due(EventName - PostTime, DueTime) for an event raised with event_after/2 and event_after/3 and of the form due(EventName - every(Interval), NextDueTime) for an event raised with event_after_every/2. An event will appear as many times as it has been setup. EventName is the name of the after event. PostTime is the time at which the event was posted, and DueTime the time at which it is to be raised. For a repeating after event, Interval is the period between events, and NextDueTime is the next time at which it is to be raised.

Note that this predicate simply returns a snapshot of the current pending after events. It is therefore possible that an after event returned in Events has already been raised.

Modes and Determinism

Examples

   setup :-
      set_event_handler(hi, hi/0),
      event_after_every(hi, 3.2).

   hi :-
      current_after_events(Es),
      writeln(hi),
      writeln('Pending events'-Es).

   % just spinning after the setup for events to be raised.
   ?- setup, repeat, fail.  
    hi
    Pending events - [due(hi - every(3.2), 30.51)]
    hi
    Pending events - [due(hi - every(3.2), 33.72)]
    hi
    Pending events - [due(hi - every(3.2), 36.93)]
    ...

See Also

event_after / 2, event_after / 3, event_after_every / 2, event / 1, set_event_handler / 2, event_create / 3, event_retrieve / 3