The Prio argument determines the priority with which the Goal will be scheduled when woken. It can be a positive number between 1 and 12, or zero, in which case the priority defaults to the priority setting of the predicate which is called in Goal.
CondList is one term or a list of terms of the form Vars->Cond. The condition Cond is either the name of a predefined suspension list or the specification of a suspension list in one of the variable's attributes. The predefined suspension lists are inst (for instantiation), bound (bound to another variable) and constrained (any constraining attribute modification). The general specification has the form
Vars->moduleName:(suspListName of attrStruct)
which can be abbreviated (if moduleName and attrStruct are identical) to
Vars->moduleName:suspListName
The following are examples for valid conditions:
Vars->inst
Vars->constrained
Vars->fd:min
Vars->fd:(min of fd)
A specification of the form trigger(Atom) states that the goal should
be woken by a symbolic trigger, ie. by a matching invocation of the
built-in schedule_suspensions/1. The name of the trigger can be an
arbitrary atom.
[eclipse]: suspend(writeln(hello), 2, X->inst, Susp),
get_suspension_data(Susp, goal, Goal),
get_suspension_data(Susp, module, Module).
X = X
Goal = writeln(hello)
Susp = 'SUSP-_321-susp'
Module = eclipse
Delayed goals:
writeln(hello)
yes.
[eclipse]: suspend(writeln(hello), 2, X->inst, Susp),
kill_suspension(Susp), % killed before woken
X=1.
Susp = 'SUSP-_308-dead'
X = 1
yes.