The accessible properties of a suspension are:
Name Type Value
-------------------------------------------------------------
goal Term Suspended goal
module Atom Context module
qualified_goal Atom:Term Lookup module and goal
priority Integer Waking priority
invoc Integer Invocation number (debugging)
state Integer 0 (sleeping), 1 (scheduled), 2 (dead)
Note that a suspension is not a standard logical data structure and can
only be manipulated in a restricted way. In particular, a suspension
cannot be printed (e.g. using writeq/1,2) and then read back, giving a
term identical to the one that was printed.
[eclipse 4]: make_suspension(writeln(hello), 5, S),
get_suspension_data(S, priority, P),
get_suspension_data(S, goal, G),
get_suspension_data(S, module, M),
get_suspension_data(S, qualified_goal, QG),
get_suspension_data(S, invoc, I),
get_suspension_data(S, state, Z).
P = 5
G = writeln(hello)
M = eclipse
QG = eclipse : writeln(hello)
I = 0
S = 'SUSP-_162-susp'
Z = 0
Delayed goals:
writeln(hello)
yes.
[eclipse 2]: suspend(writeln(hello), 3, X->inst, S),
get_suspension_data(S, state, Z0),
call_priority((X=1,true,get_suspension_data(S, state, Z1)), 2),
get_suspension_data(S, state, Z2).
hello
Z0 = 0
X = 1
Z1 = 1
S = 'SUSP-_161-dead'
Z2 = 2
yes.