threaded_peek(Goal) threaded_peek(Goal, Tag)
Checks if the result of proving
Goal in a new thread is already
available. This call succeeds or fails without blocking execution
waiting for a reply to be available.
The argument of this predicate should be a variant of the argument of
the corresponding threaded_call/1
or threaded_once/1 call.
When the predicate argument is subsumed by the
threaded_once/1 call argument, the
threaded_peek/1 call will
succeed iff its argument unifies with an already available solution of
the (more general) goal.
threaded_peek/2 variant accepts a threaded call identifier tag
generated by the calls to the threaded_call/2
and threaded_once/2 predicates. Tags
shall be regarded as an opaque term; users shall not rely on its type.
This predicate requires a backend Prolog compiler providing
compatible multi-threading primitives. The value of the read-only
threads flag is set to
supported when that
is the case.
Modes and number of proofs¶
threaded_peek(+callable) - zero_or_one threaded_peek(+callable, +nonvar) - zero_or_one
Goalis a variable:
Goalis neither a variable nor a callable term:
Tagis a variable: