built-in predicate
threaded_engine_next/2
Description
threaded_engine_next(Engine, Answer)
Retrieves an answer from an engine and signals it to start computing the next answer. This predicate blocks until an answer becomes available. The predicate fails when there are no more solutions to the engine goal. If the engine goal throws an exception, calling this predicate will re-throw the exception and subsequent calls will fail.
Note
This predicate requires a backend Prolog compiler providing
compatible multi-threading primitives. The value of the read-only
engines flag is set to supported
when that
is the case.
Modes and number of proofs
threaded_engine_next(@nonvar, ?term) - zero_or_one
Errors
Engine
is a variable:instantiation_error
Engine
is neither a variable nor the name of an existing engine:existence_error(engine, Engine)
Examples
% get the next answer from the worker_1 engine:
| ?- threaded_engine_next(worker_1, Answer).