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.