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.
[eclipse 1]: suspend(writeln(world), 2, trigger(hello)), trigger(hello). world yes.