# `threaded_engine/1`

## Description

    threaded_engine(Engine)

Enumerates, by backtracking, all existing engines. Engine names shall be regarded as opaque terms; 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 engines flag is set to `supported` when that is the case.

## Modes and number of proofs

    threaded_engine(?nonvar) - zero_or_more

## Errors

(none)

## Examples

    % check that the worker_1 engine exists:
    | ?- threaded_engine(worker_1).

    % write the names of all existing engines:
    | ?- forall(
             threaded_engine(Engine),
             (writeq(Engine), nl)
         ).

See also

threaded_engine_create/3, threaded_engine_self/1, threaded_engine_destroy/1