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.