# `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.

## 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).

See also

threaded_engine_create/3, threaded_engine_next_reified/2, threaded_engine_yield/1