built-in predicate
threaded_peek/1-2
Description
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_call/1 or
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.
The 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.
Note
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
Errors
Goal is a variable:instantiation_errorGoal is neither a variable nor a callable term:type_error(callable, Goal)Tag is a variable:instantiation_errorExamples
threaded_peek(Goal)threaded_peek(::Goal)threaded_peek(Object::Goal)