[ Advanced Control and Suspensions | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

trigger(+Trigger)

Wake the suspensions associated with the symbolic trigger Trigger until there are no more left.
Trigger
An atom.

Description

Suspensions in ECLiPSe go through several stages: They are created, attached to variables or symbolic triggers, later scheduled for execution, and finally executed.

The task of trigger/1 is to take suspensions from the global suspension list associated to the symbolic name Trigger and wake them. The suspensions are inserted into a global priority list, according to their individual priority, and then executed. Trigger/1 includes a call to wake/0 and is actually defined as

       trigger(Trigger) :-
	   schedule_suspensions(Trigger),
	   wake.
   

If no suspensions are associated to Trigger, trigger/1 just succeeds and does nothing.

Fail Conditions

Fails if a woken goal fails

Examples

[eclipse 1]: suspend(writeln(world), 2, trigger(hello)), trigger(hello).
world
yes.




See Also

demon / 1, attach_suspensions / 2, make_suspension / 3, suspend / 3