object

# `timeout`

Predicates for calling goal with a time limit.

Availability:
`logtalk_load(timeout(loader))`
Author: Paulo Moura
Version: 0:10:0
Date: 2022-06-15
Compilation flags:
`static, context_switching_calls`
Dependencies:
(none)
Remarks:

> - Supported backend Prolog systems: B-Prolog, ECLiPSe, SICStus Prolog, SWI-Prolog, Trealla Prolog, XSB, XVM, and YAP.

Inherited public predicates:
(none)

## Public predicates

### `call_with_timeout/2`

Calls a goal deterministically with the given time limit (expressed in seconds). Note that the goal may fail or throw an error before exhausting the time limit.

Compilation flags:
`static`
Template:
`call_with_timeout(Goal,Timeout)`
Meta-predicate template:
`call_with_timeout(0,*)`
Mode and number of proofs:
`call_with_timeout(+callable,+positive_number)` - `zero_or_one`
Exceptions:
Goal does not complete in the allowed time:
`timeout(Goal)`

### `call_with_timeout/3`

Calls a goal deterministically with the given time limit (expressed in seconds) returning a reified result: `true`, `fail`, `timeout`, or `error(Error)`.

Compilation flags:
`static`
Template:
`call_with_timeout(Goal,Timeout,Result)`
Meta-predicate template:
`call_with_timeout(0,*,*)`
Mode and number of proofs:
`call_with_timeout(+callable,+positive_number,--atom)` - `one`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)